这里为啥会多个乱码
#include<stdio.h>2 #include<string.h>
3 #define num 21
4 int main()
5 {
6
7 char str1;
8 int i=0;
9 _Bool flag=1;
10 printf("请输入一行文本:");
11 while((str1 = getchar()) != '\n')
12 {
13 if(str1==' ')
14 {
15 flag=0;
16 }
17
18 }
19 if(i<20)
20 {
21 printf("%s\n",str1);
22 }
if(i>=20)
24 {
25 if(flag)
26 {
27 printf("HelloEveryone,I'm YourGoodFriend.\n");
28 }
29 else
30 {
31 printf("Hold on your hats.\n");
32 }
33 }
34 return 0;
35
36
37
38 }
1.我有空格的那个输出应该是Hold那个才对哇
2.那个fish后面的乱码是怎么回事 你的程序有两处错误。
1、while循环的条件中已经执行了 i++while循环内的if语句应该判断的是str1,而不应该是str1
2、执行完while循环后,字符串没有在结尾添加'\0',这样会导致printf%s的时候越界(%s是以'\0'判断结尾的),输出乱码,这是你的程序出现乱码的原因。
#include<stdio.h>
#include<string.h>
#define num 21
int main()
{
char str1;
int i=0;
int flag=1;
printf("请输入一行文本:");
while((str1 = getchar()) != '\n')
{
if(str1==' ')
{
flag=0;
}
}
str1='\0';
if(i<20)
{
printf("%s\n",str1);
}
if(i>=20)
{
if(flag)
{
printf("HelloEveryone,I'm YourGoodFriend.\n");
}
else
{
printf("Hold on your hats.\n");
}
}
return 0;
} sunrise085 发表于 2020-3-26 21:42
你的程序有两处错误。
想问一下为啥我复制代码会复制到前面的行数,然后我把小甲鱼的代码复制进我的编程里行首就会多很多tab符
孤世星辰 发表于 2020-3-27 09:14
想问一下为啥我复制代码会复制到前面的行数,然后我把小甲鱼的代码复制进我的编程里行首就会多很多tab符
...
我不知道你用的是什么编译器,也不知道为什么你复制程序会带有前面的行号。
复制小甲鱼的代码有很多tab,这个是因为不同的编译器的tab不一样,有的是4个空格,有的是8个空格,二刚好小甲鱼的代码是8个,你的是4个,所以复制过去之后tab就多了一倍。
目前不要纠结于tab的多少,先学精髓。
其实很多大神在编程的时候都不用tab的,只用空格,这样就不会遇到你所说的问题 sunrise085 发表于 2020-3-27 09:22
我不知道你用的是什么编译器,也不知道为什么你复制程序会带有前面的行号。
复制小甲鱼的代码有很多ta ...
那怎么把这个行数弄掉哇,不然每次复制代码都挺麻烦的
孤世星辰 发表于 2020-3-27 09:27
那怎么把这个行数弄掉哇,不然每次复制代码都挺麻烦的
这个我也不知道。
你试试,Alt+鼠标选中,这个好像能够竖向区块选中。
具体行不行我也不知道。
你网上查一下吧。
页:
[1]