gpt4 book ai didi

c - 最终关闭失败:file truncated

转载 作者:行者123 更新时间:2023-11-30 17:23:54 26 4
gpt4 key购买 nike

我正在用c语言编写一个程序,由于某种原因它显示了这条消息\.\nul 最终关闭失败:文件被截断...这不是编译器错误,这是我进行语法检查时的消息..

这是代码..

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int T,N,K,i,j;
scanf("%d",&T);
for(i=0;i<T;i++)
{
scanf("%d",&N);
scanf("%d",&K);
int A[N];
for(j=0;j<N;j++)
scanf("%d",&A[j]);
long int s1=pow(2, N);
int count,big=0,flag=0;
for(count=0;count<s1;count++)
{
for(j=0;j<N;j++)
{
if(count&(1<<j))
{
flag=(A[j]^K)^flag;
}
else if(count==0)
flag=K;

}
if(flag>big)
big=flag;
}
printf("%d\n",big);

}
return 0;
}

最佳答案

问题是您无法冲洗 stdin每次使用scanf后留下 newline输入缓冲区中(按 [enter] 的结果),然后将其作为以下 scanf 的下一个值称呼。没有提示您输入值的事实掩盖了您的输入请求被跳过的事实。添加询问每条数据的提示,或者使用循环来提取 newlines从输入缓冲区,或更改 scanf格式化字符串来读取并丢弃 newline每次读取输入时。请注意,这些都不是完美的解决方案。尝试以下操作:

printf ("\nEnter T: ");
scanf("%d%*c",&T);
for(i=0;i<T;i++)
{
printf ("\nEnter N: ");
scanf("%d%*c",&N);
printf ("\nEnter K: ");
scanf("%d%*c",&K);
int A[N];
for(j=0;j<N;j++) {
printf ("\nEnter A[%d]: ", j);
scanf("%d%*c",&A[j]);
}

通过提示您输入,您至少会意识到何时由于newline而跳过输入请求。被视为您的预期输入。

关于c - 最终关闭失败:file truncated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27371011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com