Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
终端打印出第一个字符后,scanf不工作_C - Fatal编程技术网

终端打印出第一个字符后,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”,链接)可能会使目标数组溢出。使用
    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”,链接)可能会使目标数组溢出。使用
    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])谢谢你的帮助!现在开始工作了,我明白为什么了!谢谢!谢谢你的帮助!现在开始工作了,我明白为什么了!谢谢!