gpt4 book ai didi

c++ - 为什么我输出最后一个字符时得到不同的结果?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:18:17 34 4
gpt4 key购买 nike

我已经运行了这个程序,下面是我的输入和输出:

a b     g
^Z
the counts of blanks are: 1,the counts of tabs are: 1,the counts of newlines are
: 1,the lastchar is: 10
g: 103
char type of lastchar is:

Press any key to continue

我的问题是,我认为我的lastchar是'g',但为什么我输出lastchar时得到10,为什么我直接输出'g'时得到103?还有,为什么按char(%c)类型输出lastchar什么也没有?

#include<stdio.h>
#include<conio.h>
int main(void)
{
int blanks=0,tabs=0,newlines=0;
int c;
int done=0;
int lastchar=0;


while((c=getchar())!=EOF)
{
if(c==' ')
{
blanks++;
}
if(c=='\t')
{
tabs++;

}
if(c=='\n')
{
newlines++;
}
lastchar=c;


}

char tt='g';


if(lastchar!='\n')
{
newlines++;
}


printf("the counts of blanks are: %d,the counts of tabs are: %d,the counts of newlines are: %d,the lastchar is: %4.0d\n",blanks,tabs,newlines,lastchar);
printf("g: %d\n",'g');
printf("char type of lastchar is: %c\n",lastchar);
return 0;




}

最佳答案

这里:

printf("g: %d\n",'g');

您要求 printf() 输出 'g' 的数字表示(很可能是 ASCII),即 103。

这里:

printf("char type of lastchar is: %c\n",lastchar); 

您要求 printf()lastchar 作为字符输出。由于数值为 10,这是一个换行符,您看不到任何内容,因为换行符是不可打印的字符。

关于c++ - 为什么我输出最后一个字符时得到不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26879839/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com