gpt4 book ai didi

c - 编写一个程序将输入复制到输出

转载 作者:行者123 更新时间:2023-11-30 14:38:13 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,将其输入复制到输出。我假设如果给出以下字符串:“Hello I am/c”,它应该输出:“Hello\t am\c”我正确吗?

我尝试在线阅读有关 stdio.h 库的内容。

#include <stdio.h>
/* Write a program to copy its input to its output, replacing each tab by \t, each backspace by \b, and each backslash by \\. This makes tabs and backspaces visible in an unambigous way.*/

int main()
{
char c;

while ((c = getchar()) != EOF){

if ((c = getchar()) == '\t'){
putchar('\t');
}
if (c == '\b'){
puts("\b");
}
if (c == '\\'){
puts("\\");
}

putchar(c);
}

}

请帮助我进一步理解这个问题并解释为什么我的代码不起作用。

最佳答案

两个问题。第一:

while ((c = getchar()) != EOF){

您应该将 getchar() 的返回值与 EOF 进行比较。在这里,您将 cEOF 进行比较。这是不正确的,因为 cchar,而 getchar 返回 int。因此,您应该将 intEOF 进行比较,并将 charEOF 进行比较。这是错误的。

第二:

    if ((c = getchar()) == '\t'){

为什么再次调用getchar?您不想阅读另一个字符。

关于c - 编写一个程序将输入复制到输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56728692/

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