我的程序有点问题,我正在尝试编码。基本上我想在我的循环中一个一个地输入一个符号,当我完成后我只想按回车键退出循环然后将字符串打印到控制台。但是,这似乎不起作用,我已经尝试了几个小时而没有掌握它。这是我的代码
#include <stdio.h>
int main(int argc, char *argv[]){
int i = 0;
char text[i];
char symbol;
while(1){
scanf("%s", &symbol);
if(symbol == 13){ //13 should be the ascii value for enter
break;
}
text[i] = symbol;
i++;
}
printf("%s", text);
getch();
return 0;
}
最佳答案
%s
读一个词。如果要使用scanf
读取字符,请使用%c
。- C 字符串以 NUL 结尾,您首先必须在打印之前终止字符串。
char text[i]
-i
此时为零。您将无法在此处存储您的字符串。要么在编译时知道最大大小(并在运行时追加时检查),要么根据需要动态分配内存。
注意:从流中裸扫只是自找麻烦。更喜欢阅读台词。
关于c - 当我按回车键时退出循环(C 编程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33284813/