Если я читаю строки из .txt-файла различной длины (т. Е. 5 целых чисел в строке 1, затем 2 целых числа в строке 2, затем 10 целых чисел в строке 3 и т. Д.), Используя fgets (хотя я не обязательно нужно использовать его, просто показалось хорошим инструментом в моей ситуации). Каждое найденное решение возвращает ошибку 0 (например, strtol или atio).Как определить, что вы достигли конца цепочки чисел fgets, когда 0 является последним целым числом в строке, используя C++?
char str[100];
char* p = str;
FILE* fp;
fp = open("text.txt",r);
if(fp == NULL)
printf("aborting.. Cannot open file! \n");
while(!foef(fp))
{
if(fgets(p,100,fp) != NULL)
{
for (int j = 0 ; j < 20 ; j+=2)
{
temp1 = strtol(p, &p, 10);
// need to store temp1 into arr[j] if it is a valid integer (0->inf)
// but should discard if we are at the end of the line
}
}
fp = open ("text.txt", r); должен быть fp = fopen ("text.txt", r); –
Есть ли символ конца строки ('\ n') в конце строки целых чисел? –
http://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-wrong –