我正在使用 fgetc 从文本文件读取和验证流,一次一个字符,但由于某种原因它会重新排序字符。该文本文件包含类似“abc”的内容
void newFunction(int i, int j, int k);
int main()
{
FILE *fp;
/...opens text file.../
newFunction(fgetc(fp), fgetc(fp), fgetc(fp));
}
void newFunction(int i, int j, int k)
{
printf("%d %d %d", i, j, k,);
}
我期待 a b c
,但为什么我的代码给出 c b a
?
最佳答案
void newFunction(int i, int j, int k);
int main()
{
FILE *fp;
/...opens text file.../
int i = fgetc(fp);
int j = fgetc(fp);
int k = fgetc(fp);
newFunction(i,j,k);
}
void newFunction(int i, int j, int k)
{
printf("%d %d %d", i, j, k);
}
您可以执行上述操作以避免评估参数的顺序出现歧义。
关于C fgetc 同时用作同一函数的参数时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43567886/