我使用fscanf
来输入特定格式。我尝试阅读的一行是:
A B C D E F G H I J K x
我的fscanf
代码如下:
fscanf(circuit, "%s %s %s %s %s %s %s %s %s %s %s %c ",
str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, str11, &a);
在这个例子"电路"是文件的名称。出于某种原因,"K"
和'x'
被正确读取(分别为str11
和a
),但其余字符无法正确读取。我选择字符串标识符与字符标识符的原因是因为该行可能包含单个数字整数。在整数的情况下,我只是将字符串转换为稍后代码块中的整数。为什么这不正常?
答案 0 :(得分:0)
我的代码在我的机器上运行。
#include <stdio.h>
#include <stdlib.h>
//#define _CRT_SECURE_NO_WARNINGS
int main()
{
char str1[2], str2[2], str3[2], str4[2], str5[2], str6[2], str7[2], str8[2], str9[2], str10[2], str11[2];
char a;
FILE * fp;
fp = fopen("test.txt", "w+");
fputs("A B C D E F G H I J K x", fp);
rewind(fp);
fscanf(fp, "%s %s %s %s %s %s %s %s %s %s %s %c ", str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, str11, &a);
printf("Read String1 |%s|\n", str1);
printf("Read String2 |%s|\n", str2);
printf("Read String3 |%s|\n", str3);
printf("Read Character |%c|\n", a);
fclose(fp);
return(0);
}
输出:
Read String1 |A|
Read String2 |B|
Read String3 |C|
Read Character |x|