gpt4 book ai didi

c - 为什么我的 C 代码中的空间少了一个

转载 作者:太空宇宙 更新时间:2023-11-04 01:50:45 24 4
gpt4 key购买 nike

按照惯例,让空格键为 -如果我在键盘上输入:

J-----a

输出是

J----a

我用笔和纸多次跟踪我的程序,每次都得到

J'\t'--a

这应该是我在键盘上输入的为什么输出是

J----a

代码:

/***************************************************
* Replacing spaces with appropriate tabs an *
* spaces to achieve the same effect *
* *
***************************************************/
#include <stdio.h>
#define TAB 4;

int main(void)
{
int ch;
int printPos=0;
int chpos=-1;
int space2tab;

while( (ch=getchar()) !='@')
{
chpos++;
if(ch!=' ')
{
space2tab = TAB- printPos % TAB;
while(printPos+space2tab <= chpos)
{
putchar('\t');
printPos+=space2tab;
space2tab = TAB- printPos % TAB;
}
while(printPos<chpos)
{
putchar(' ');
printPos++;
}
if(printPos==chpos)
{
putchar(ch);
printPos++;
}
}
}
return 0;
}

最佳答案

#define TAB 4;

将标记 TAB 定义为 4; - 包含分号。这意味着

space2tab = TAB- printPos % TAB;    

扩展为

space2tab = 4; -printPos % 4;;

...这很可能不是您想要的。

(-printPos % 4 是被丢弃的有效表达式。)


TAB定义为4:

#define TAB 4

关于c - 为什么我的 C 代码中的空间少了一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43557720/

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