我注意到fscanf
无法使用确定的C编译器(Intel,Cray),因此我想使用fgets
来读取包含字符串和整数的简单输入文件
$cat input.txt
st 10 167 POP 456 244 NONE ENERGY
我可以做这样的事情
int main()
{
FILE *ptr_file;
char buf[1000];
ptr_file = fopen("input.txt", "r");
if (!ptr_file)
return 1;
for (int i = 0; i < 8; i++) {
fgets(buf, 1000, ptr_file);
printf("%s", buf);
}
fclose(ptr_file);
return 0;
}
阅读该文件,然后创建switch case
以将buf
的值存储在integer
或string
中。这显然效率不高,我想知道是否有人有更好的想法。
答案 0 :(得分:1)
考虑使用sscanf,基本上是这样的
// st 10 167 POP 456 244 NONE ENERGY
sscanf(buf, "%s %d %d %s %d %d %s %s", var1, &var2....);