[英]Not reading each line of text file
I am trying to write a program that reads a line from a text document and prints the verbal equation into a mathematical one, but for some reason it is only reading the second and last lines of the TXT file. 我正在尝试编写一个程序,该程序从文本文档中读取一行并将语言方程式打印为数学方程式,但是由于某种原因,它仅读取TXT文件的第二行和最后一行。
Text example 文字范例
subtraction,3,57
multiplication,90,46
division,26,7
division,26,0
Code 码
int main()
{
char name[21], namecopy[21];
char *nc, com = 100;
int num1, num2, p, i;
FILE *file;
file = fopen("C:\\hw10.txt", "r");
strcpy(namecopy, name);
while (fgets (namecopy,21,file)!=NULL)
{
fscanf(file, "%[^,]%*c %i%*c %i%*c", &name, &num1, &num2);
printf("%s %i %i\n", name, num1, num2);
if( strcmp( name, "subtraction" ) == 0 )
{
p = num1-num2;
printf("%d - %d = %i \n", num1, num2, p);
}
if( strcmp( name, "addition" ) == 0 )
{
p = num1+num2;
printf("%d + %d = %i \n", num1, num2, p);
}
if( strcmp( name, "multiplication" ) == 0 )
{
p = num1*num2;
printf("%d x %d = %i \n", num1, num2, p);
}
if( strcmp( name, "division" ) == 0 )
{
if(num2==0)
printf("undefiend\n");
else
{
p = num1/num2;
printf("%d / %d = %i \n", num1, num2, p);
}
}
}
char ch=getchar();
return 0;
}
This line: 这行:
fscanf(file, "%[^,]%*c %i%*c %i%*c", &name, &num1, &num2);
should be 应该
sscanf(namecopy, "%[^,]%*c %i%*c %i%*c", &name, &num1, &num2);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.