1

Тема: Допоможіть із задачею)

Всім привіт , потрібна допомога
Ніяк неможу розвязати задачу, якщо маєте час допоможіть будь ласка!
Задача
Дано текстовий файл t. Відомо, що серед символів цього файлу є по крайній мірі три
коми.
Знайти числа і (номер рядка у файлі) та j (номер позиції у рядку) – такі, що sіj – третя
за порядком кома (оформити у вигляді функції).
Текст з файлу виводить, а от як зробити щоб функція пошуку шукала в цьому файлі , незнаю(

2

Re: Допоможіть із задачею)

а яка мова програмування? і покажіть хоч код, що залишився після ваших спроб вирішити задачу

Подякували: kopirait, Eff1c2

3 Востаннє редагувалося kopirait (02.04.2018 19:05:49)

Re: Допоможіть із задачею)

вибачаюсь)

4

Re: Допоможіть із задачею)

FakiNyan написав:

а яка мова програмування? і покажіть хоч код, що залишився після ваших спроб вирішити задачу

с++, перепрошую) просто новачок, вроді прикріпляв файл

#include<iostream>
#include"windows.h"
#include <fstream>
#include <string>

using namespace std;

int iter_variant(string str);
int fprocess(fstream &str);
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
   

    fstream str;
    fprocess(str);
    //cout << "i = " << iter_variant(str) << endl;

    system("pause");
    return 0;
}
int fprocess(fstream &fin) // обов'язково - як посилання
{
    fin.open("t.txt");
    if (!fin.is_open())
    {
        cout << "помилка" << endl;
        return -1;
    }

    string str;
    while (getline(fin, str)) // поки можна прочитати рядок
    {
        cout << str << endl; // виводимо його на екран
    }

}
int iter_variant(string str)
{
    int check = 0;
    int si;//третя кома
    
    for (int j = 0; j < str.length(); j++)
    {  //цикл пошуку третьої коми
        if (str[j] == ',')
            check++;
        if (check == 3)
        {
            si = j;
            break;
        }
    }
    return si;
}

Chemist-i: Використовуйте теґ code

5 Востаннє редагувалося koala (02.04.2018 22:52:04)

Re: Допоможіть із задачею)

Перемотайте файл після fprocess на початок за допомогою seekg (можете це прямо в fprocess додати), або ж приберіть fprocess.
iter_variant має читати в циклі з файлу стрічки за допомогою getline (тоді потрібен подвійний список), або ж читати по одному символу за допомогою operator >>(тоді доведеться вручну шукати знаки нового рядку). Вам потрібні два числа (i та j), а якщо iter_variant обробляє лише одну стрічку, то i він ніяк не отримає.
І додайте тег code навколо коду (знак <> над полем для редагування).

Подякували: kopirait1