岩岫杳冥 发表于 2022-9-2 17:15:19

《带你学C带你飞》第3章 数组,80页,加上'\0' 打印中文还是乱码...

#include<stdio.h>
int main(void){
      int n,i;
      printf("请输入字符的个数:");
      scanf("%d",&n);
      char a;//定义可变长数组
      printf("请开始输入字符:");
      getchar();//过滤掉上面最后输入的'\n'
      for(i=0;i<n;i++){
                scanf("%d",&a);
      }
      a='\0';
      printf("你输入的字符串是:%s\n",a);
      return 0;
}
~

我按照书上的实例,输入了字符个数17,输入字符 "I Love FishC.com!",结果是乱码..这是为什么?
(等级不够无法上传图片,就是一团黑糊糊的问号)

岩岫杳冥 发表于 2022-9-2 17:20:54

{:10_269:}或者说可能会有哪些原因?我一个个试一下

临时号 发表于 2022-9-2 17:40:29

看我注释
#include<stdio.h>
int main(void){
      int n,i;
      printf("请输入字符的个数:");
      scanf("%d",&n);
      char a;
      printf("请开始输入字符:");
      getchar();
      for(i=0;i<n;i++){
                scanf("%c",&a);// 字符的格式化符号是%c
      }
      a='\0';
      printf("你输入的字符串是:%s\n",a);
      return 0;
}

岩岫杳冥 发表于 2022-9-3 14:48:31

临时号 发表于 2022-9-2 17:40
看我注释

我明白了,谢谢!我用的%d是跟着整型的参数,这里输入的是字符,应该是%c跟字符型数据{:5_92:}
页: [1]
查看完整版本: 《带你学C带你飞》第3章 数组,80页,加上'\0' 打印中文还是乱码...