У меня есть файл data.txt
, и мне нужно читать различные числа целых чисел в каждой строке для дальнейшей обработки, а некоторые, возможно, пустую строку.
//data.txt
3 7 2 1 9
8
234 0 2 -1
И я использую программу для его чтения.
int main() {
FILE *fp=fopen("data.txt","r");
char input;
int temp;
if(fp==NULL){
perror("Cannot open file!\n");
exit(1);
}
while(!feof(fp)){
while(fscanf(fp,"%c",&input)==1){
if(input==' '){
printf(" ");
continue;
}
else if(input=='\n') {
printf("This line finished.\n");
continue;
}
else if(input=='-'){
fscanf(fp,"%c",&input);
temp=-(int)(input-'0');
printf("%d",temp);
continue;
}
temp=(int)(input-'0');
printf("|%d|",temp);
}
}
fclose(fp);
return 0;
}
И я получаю странные результаты с -35 в каждой строке.
|3| |7| |2| |1| |9||-35|This line finished.
|8||-35|This line finished.
|-35|This line finished.
|2||3||4| |0| |2| -1
Process finished with exit code 0
Кто-нибудь знает, что не так с моей программой?