终端打印出第一个字符后,scanf不工作
我正在编写一个代码,我想获取字符串的第一个字符并对其进行编辑,但代码的工作方式不符合要求:终端打印出第一个字符后,scanf不工作,c,C,我正在编写一个代码,我想获取字符串的第一个字符并对其进行编辑,但代码的工作方式不符合要求: #include <stdio.h> #include <string.h> #define MAX_lIMIT 100 int main() { char link[MAX_lIMIT]; int length; int codex; scanf("%s", link); printf("%s, Write the new versi
#include <stdio.h>
#include <string.h>
#define MAX_lIMIT 100
int main() {
char link[MAX_lIMIT];
int length;
int codex;
scanf("%s", link);
printf("%s, Write the new version of the script.\n", link);
length = strlen(link);
printf("%c", link[0]);
scanf("%c", &link[0]);
printf("%c", link);
}
#包括
#包括
#定义最大限度100
int main(){
字符链接[最大限制];
整数长度;
国际法典;
scanf(“%s”,链接);
printf(“%s,编写脚本的新版本。\n”,链接);
长度=strlen(链接);
printf(“%c”,链接[0]);
scanf(“%c”和链接[0]);
printf(“%c”,链接);
}
当scanf(“%c”和链接[0])
从stdin
读取下一个字节,它获取上一次调用scanf(“%s”,link)留下的挂起换行符代码>
您应该使用scanf(“%c”和&link[0])
首先跳过任何空白并读取下一个字符
代码中还有其他问题:
MAX\u lIMIT
可能应该是MAX\u lIMIT
scanf(“%s”,链接)如果键入的字符超过99个且没有空格,则代码>可能会使目标数组溢出。使用scanf(“%99s”,链接)代码>
- 始终测试
scanf()的返回值
- printf(“%c”,链接[0]);`可能还应该打印一个换行符,以便输出对用户可见
- printf(“%c”,链接)<代码>不正确,应为
printf(“%s\n”,链接)`李>
以下是修改后的版本:
#包括
#定义最大限度100
int main(){
字符链接[最大限制];
如果(扫描频率(“%99s”,链接)!=1)
返回1;
printf(“%s,编写脚本的新版本。\n”,链接);
printf(“%c\n”,链接[0]);
如果(scanf(“%c”,&link[0])!=1)
返回1;
printf(“%s\n”,链接);
返回0;
}
当scanf(“%c”和链接[0])
从stdin
读取下一个字节,它获取上一次调用scanf(“%s”,link)留下的挂起换行符代码>
您应该使用scanf(“%c”和&link[0])
首先跳过任何空白并读取下一个字符
代码中还有其他问题:
MAX\u lIMIT
可能应该是MAX\u lIMIT
scanf(“%s”,链接)如果键入的字符超过99个且没有空格,则代码>可能会使目标数组溢出。使用scanf(“%99s”,链接)代码>
- 始终测试
scanf()的返回值
- printf(“%c”,链接[0]);`可能还应该打印一个换行符,以便输出对用户可见
- printf(“%c”,链接)<代码>不正确,应为
printf(“%s\n”,链接)`李>
以下是修改后的版本:
#包括
#定义最大限度100
int main(){
字符链接[最大限制];
如果(扫描频率(“%99s”,链接)!=1)
返回1;
printf(“%s,编写脚本的新版本。\n”,链接);
printf(“%c\n”,链接[0]);
如果(scanf(“%c”,&link[0])!=1)
返回1;
printf(“%s\n”,链接);
返回0;
}
它是如何“工作不正常”的?请花点时间阅读,带上SO,阅读,以及。最后,请你的问题包括预期行为和实际行为。包括向我们展示一些特定的输入,以及该输入的预期和实际输出。请参见。另请参见printf(“%c”,链接)代码>不正确,它应该是printf(“%s”,link)代码>或printf(“%c”,链接[0])代码>如何“它没有正常工作”?请花点时间阅读,带上SO,阅读,以及。最后,请你的问题包括预期行为和实际行为。包括向我们展示一些特定的输入,以及该输入的预期和实际输出。请参见。另请参见printf(“%c”,链接)代码>不正确,它应该是printf(“%s”,link)代码>或printf(“%c”,链接[0])代码>谢谢你的帮助!现在开始工作了,我明白为什么了!谢谢!谢谢你的帮助!现在开始工作了,我明白为什么了!谢谢!