gpt4 book ai didi

c - C 中的 While 循环

转载 作者:行者123 更新时间:2023-11-30 20:14:57 24 4
gpt4 key购买 nike

我尝试将这段代码中的 do-while 循环更改为 while 循环。我编译了代码并运行了它,但没有收到任何错误消息,但我的代码也没有打印任何内容,所以我假设我的 while 循环代码有问题。有人可以告诉我我的 while 循环代码做错了什么吗?

...
while(fgets(transinput,sizeof(transinput),in)!=NULL){
i=0;

do {
for(j=0;j<npos;j++){
transchar = transinput[i];
if(transchar != '\n' && transchar != '\0'){
transtemp[j] = transchar;
++i;
} else {
transtemp[j] = ' ';
}
}
for(ii=0;ii<npos;ii++){
fprintf(out,"%c", transtemp[decrypt[ii]]);
}
}
while(transchar != '\n' && transchar != '\0');

fprintf(out,"\n");
}
...

更新的当前代码:

...
i=0;
while(fgets(input3,sizeof(input3),file1)!=NULL){
ch = input3[i];

while(ch != '\0' && ch!='\n'){
for(j=0;j<npos;j++){
//ch = input3[i];
if(ch != '\0' && ch!='\n'){
temp[j] = ch;
++i;
} else {
temp[j] = ' ';
}

}
for(k=0;k<npos;k++){
fprintf(file2,"%c", temp[transposition[k]]);
}
}

fprintf(file2,"\n");

}
...

最佳答案

看起来i=0do whilewhile实现迷失了。

即使在 while 循环之前将 i 初始化为 0,它在第一次迭代后也不会重置,这是一个错误。

j 也存在问题。在 for 循环中使用 j 后,立即将其设置为 0。

for(j=0;j<npos;j++){
j=0;

如果npos小于或等于0,则不会进入循环。如果npos大于零,您将永远不会离开循环。

关于c - C 中的 While 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23207784/

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