//Дано текстовий файл t.Відомо, що в цьому файлі є по крайній мірі три крапки.
//Знайти числа і(номер рядка у файлі) та j(номер позиції у рядку) – такі, що sіj – третя
//за порядком крапка (оформити у вигляді функції).
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
#include
using namespace std;
int SuchPunkt1(int& i)
{
ifstream fin("C:\\Користувачі\\User\\source\\repos\\№10.1\\Hefts.txt");
char line[150]; //= "Heft.txt";
while (!fin.eof())
{
fin.getline(line, sizeof(line));
cout << "filename :" << line << endl;
int k = 0;
for (i; i < 150 && line[i] != '\0'; i++)
{
if (line[i] == '.') {
k++;
if (k == 3) {
cout << i << endl;
return i;
}
}
}
}
return i;
}
int SuchPunkt2(int& i)
{
char letter[151];
ifstream fin("Hefts.txt"); // ім'я файлу
fin >> letter;
int k = 1;
for (int j = 0; j <= i; j++) {
if (letter[j] == '\n') {
k++;
}
}
return k;
}
int main()
{
setlocale(LC_ALL, "rus");
ifstream fin("Hefts.txt"); // ім'я файлу
char line[150];
while (!fin.eof())
{
fin.getline(line, sizeof(line));
cout << line << endl;
}
int i = 0;
cout << "\nПозицiя символу : " << SuchPunkt1(i) << endl;
cout << "\nРядок : " << SuchPunkt2(i) << endl;
cout << "\nThe End" << endl;
return 0;
}
C/C++
Исправьте мой код, пж! Я не понемаю что не так!!! Задолбался! Я один сиджу по неделях на одной прогорамкой? Спасибо!
первое - вы в какую зону интернета пришли? правильно в ru а не ua, а значит использовать в общении все же лучше русский (переводчик в помощь)
второе - ваш код слишком "пестрый и уникальный" и разбираться/модифицировать его нет желания
единственное что могу сказать что непонятно зачем вы файл читаете аж три раза?! все это можно делать в едиственном чтении, у вас нету ограничения количества операций после "прочтения символа в переменную", вы можете использовать и проверять её кучу раз.
далее, ">>" не самый лучший вариант т. к. он "вроде как" читает от пробела до пробела и эти пробелы "съедает". таже вы читаете в буфер а после в нем перебираете все символы, может проще читать не порциями а по одному? иначе вы заводите "цикл в цикле в цикле в цикле..." и в каждом плодите переменные (я понимаю что вам рано за оптимизацию и все же НАДО - вы не в шарпах)?
третье - вот вам словестное описание
-открыть файла (есть)
-если файл открылся - завести оставшиеся переменные и цикл с условием не конец файла (есть)
-внутри цикла читать по одному символу
-если символ "новая строка" - увеличивать счетчик строк, сбросить счетчик символов и пропустить итерацию цикла
-если символ точка - увеличить счетчик точек
-если счетчик точек равен трем - закрыть файл и выйти из цикла
-в конце тела цикла увеличивать счетчик символов
-после цикла (но под условием открытия!) вывести значения счетчика строк и символов
не забыть что возможно программа выполниться и закроется а вы ничерта не увидите
не забыть создать все нужные переменные (их 5), обнулить их и погуглить неизвестное/непонятное (желательно на инглише)
не забыть что машина считает с 0 а не с 1(как и предложенный алгоритм) и что для вас строка 3 позиция 5 для машины pos 4 @ line 2, и в случае необходимости значения нужно подкоректировать (ДО вывода ПОСЛЕ цикла)
второе - ваш код слишком "пестрый и уникальный" и разбираться/модифицировать его нет желания
единственное что могу сказать что непонятно зачем вы файл читаете аж три раза?! все это можно делать в едиственном чтении, у вас нету ограничения количества операций после "прочтения символа в переменную", вы можете использовать и проверять её кучу раз.
далее, ">>" не самый лучший вариант т. к. он "вроде как" читает от пробела до пробела и эти пробелы "съедает". таже вы читаете в буфер а после в нем перебираете все символы, может проще читать не порциями а по одному? иначе вы заводите "цикл в цикле в цикле в цикле..." и в каждом плодите переменные (я понимаю что вам рано за оптимизацию и все же НАДО - вы не в шарпах)?
третье - вот вам словестное описание
-открыть файла (есть)
-если файл открылся - завести оставшиеся переменные и цикл с условием не конец файла (есть)
-внутри цикла читать по одному символу
-если символ "новая строка" - увеличивать счетчик строк, сбросить счетчик символов и пропустить итерацию цикла
-если символ точка - увеличить счетчик точек
-если счетчик точек равен трем - закрыть файл и выйти из цикла
-в конце тела цикла увеличивать счетчик символов
-после цикла (но под условием открытия!) вывести значения счетчика строк и символов
не забыть что возможно программа выполниться и закроется а вы ничерта не увидите
не забыть создать все нужные переменные (их 5), обнулить их и погуглить неизвестное/непонятное (желательно на инглише)
не забыть что машина считает с 0 а не с 1(как и предложенный алгоритм) и что для вас строка 3 позиция 5 для машины pos 4 @ line 2, и в случае необходимости значения нужно подкоректировать (ДО вывода ПОСЛЕ цикла)
Похожие вопросы
- С++ Помогите пожалуйста исправить, дополнить код.
- Помогите исправить ошибку кода с++
- Помогите, пожалуйста, исправить ошибку в коде (C++).
- Помогите дополнить код СИ, пж.
- C++ // Обьясните пж этот код
- Помогите исправить ошибку в коде, смотри внутри.
- ПрОВЕРьте код по программированию пж! С/С++
- Нужен код на Си помогите пж
- Нужен код на Си помогите пж
- Помогите пж написать код на C++
Все працює!!!!