C - 从输入流中读取,制表符为空格
C - Read from input stream, tab as spaces
我有点卡住了,希望有人能快速看一下我做错了什么。我想让制表符算作输出空间而不是制表符。在这种情况下,我使用 3 个空格 = 1 个制表符。我假设这可能与我设置第一个 while 语句的方式有关,因为现在它正在将选项卡作为选项卡读取。
int main()
{
int i, c;
int N = 3;
while ((c = getchar ()) != EOF && c != '\n')
putchar (c);
while ((c = getchar()) == '\t')
for (i=1; i<=N; i++)
{
putchar(' ');
}
system("Pause");
}
试试这个:
int main()
{
int i, c;
int N = 3;
// exit on Ctrl-C
while((c = getch()) != 3)
{
if(c == '\t')
{
for(i=1; i<=N; i++)
{
putchar(' ');
}
}
else if(c == '\r')
{
putchar('\r');
putchar('\n');
}
else
{
putchar(c);
}
}
}
我有点卡住了,希望有人能快速看一下我做错了什么。我想让制表符算作输出空间而不是制表符。在这种情况下,我使用 3 个空格 = 1 个制表符。我假设这可能与我设置第一个 while 语句的方式有关,因为现在它正在将选项卡作为选项卡读取。
int main()
{
int i, c;
int N = 3;
while ((c = getchar ()) != EOF && c != '\n')
putchar (c);
while ((c = getchar()) == '\t')
for (i=1; i<=N; i++)
{
putchar(' ');
}
system("Pause");
}
试试这个:
int main()
{
int i, c;
int N = 3;
// exit on Ctrl-C
while((c = getch()) != 3)
{
if(c == '\t')
{
for(i=1; i<=N; i++)
{
putchar(' ');
}
}
else if(c == '\r')
{
putchar('\r');
putchar('\n');
}
else
{
putchar(c);
}
}
}