Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言getchar()和putchar()的_C_Getchar_Putchar - Fatal编程技术网

C语言getchar()和putchar()的

C语言getchar()和putchar()的,c,getchar,putchar,C,Getchar,Putchar,我是一名新的C语言学习者,下面有一个问题,我试图打印出这个名字,但没有打印出来。这就是我所尝试的: #include <stdio.h> #include <ctype.h> int main() { char name; int len = 0; printf("Enter the user name: "); name = getchar(); while (name != '\n') { len+

我是一名新的C语言学习者,下面有一个问题,我试图打印出这个名字,但没有打印出来。这就是我所尝试的:

#include <stdio.h>
#include <ctype.h>

int main()
{
    char name;
    int len = 0;

    printf("Enter the user name: ");
    name = getchar();

    while (name != '\n')
    {
        len++;
        name = getchar();
    }

    printf("char = %d\n", len);
    printf("name = ");
    putchar(name);

    return (0); 
}
它应该打印出
name=abcd


我很感激,谢谢你

首先了解C中数组的概念

使用
scanf()
printf()
如下:

#include <stdio.h>

int main(){
    char name[20];
    printf("Enter the name: ");
    scanf("%s", name);

    printf("Name: %s", name);
    return 0;
}
#包括
int main(){
字符名[20];
printf(“输入名称:”);
scanf(“%s”,名称);
printf(“名称:%s”,名称);
返回0;
}

首先了解C语言中数组的概念

使用
scanf()
printf()
如下:

#include <stdio.h>

int main(){
    char name[20];
    printf("Enter the name: ");
    scanf("%s", name);

    printf("Name: %s", name);
    return 0;
}
#包括
int main(){
字符名[20];
printf(“输入名称:”);
scanf(“%s”,名称);
printf(“名称:%s”,名称);
返回0;
}
getchar()
putchar()
一次只能处理一个字符。 由于需要存储一个基本上是字符序列的字符串,因此需要将
name
声明为字符数组

不能使用
putchar()
打印字符串。尝试
put()
printf()

并添加一个
\0
字符,表示遇到“\n”时字符串的结尾,此时您将停止读取

char name[20];
int len = 0;

printf("Enter the user name: ");
name[len] = getchar();

while (name[len] != '\n')
{
    name[++len] = getchar();
}
name[++len]='\0';
如果必须使用
putchar()
打印字符串,则字符串的长度在
len
中。使用变量
i=0
创建一个循环,只要
i
getchar()
putchar()
一次只能处理一个字符,就继续迭代。 由于需要存储一个基本上是字符序列的字符串,因此需要将
name
声明为字符数组

不能使用
putchar()
打印字符串。尝试
put()
printf()

并添加一个
\0
字符,表示遇到“\n”时字符串的结尾,此时您将停止读取

char name[20];
int len = 0;

printf("Enter the user name: ");
name[len] = getchar();

while (name[len] != '\n')
{
    name[++len] = getchar();
}
name[++len]='\0';

如果必须使用
putchar()
打印字符串,则字符串的长度在
len
中。使用变量
i=0
创建一个循环,并在
i期间不断迭代这就是使用getchar()和putchar()获取输入和打印的方法

#包括
内部主(空)
{   
int名称;
printf(“输入用户名:”);
而((name=getchar())!=EOF)
putchar(姓名);
返回0;
}

我希望这有帮助。:)

这就是使用getchar()和putchar()进行输入和打印的方式

#包括
内部主(空)
{   
int名称;
printf(“输入用户名:”);
而((name=getchar())!=EOF)
putchar(姓名);
返回0;
}

我希望这有帮助。:)

您可能需要了解更多关于编程和编程的知识。我想推荐一本优秀的、免费的编程入门(不是关于C的)

你需要学习更多的C语言。特别是关于(但它们有局限性,我让你去看看是哪一个),也许是
struct
,指针。这将花费您几周的时间,您需要阅读几本书(以及一些参考资料,例如,可能还需要浏览C11的规范,即)

(问问你自己,如果你的程序用户输入了50个字母,甚至100万个字母的名字,会发生什么或应该发生什么;如果输入了“错误”的字母,例如数字或标点符号,会发生什么?想想电脑里的名字到底是什么)

因为您只需要使用和,所以需要仔细阅读它们的规范。请注意,stdio通常是。也许你需要使用

然后,您可以将一个名称读入某个数据结构中(我让您去找出是哪一个),然后您可以使用
getchar
一次读取一个字符来填充该数据结构。同样,您可以使用
putchar
一次输出一个字符的数据结构

当然,您将使用一些原语(可能是某种循环)

我们不会给你做作业。

不要忘记在编译器中启用所有警告和调试信息(例如,如果使用……,则使用
gcc-Wall-Wextra-g
编译)。阅读有关编译器的文档(例如查看本章)。当然,学习如何使用调试器(
gdb
,请参阅)

你是开始学习C编程的人。要坚持不懈,这需要一些时间(数周或数月的工作)。阅读几本书,研究现有C语言软件的源代码(例如on)


对于C语言的专家来说,做家庭作业是微不足道的;然而,你应该自己学习-作业的目的是教你一些东西-如果你从其他地方复制一个解决方案,你将不会学到任何东西

你可能需要学习更多关于编程和编程的知识。我想推荐一本优秀的、免费的编程入门(不是关于C的)

你需要学习更多的C语言。特别是关于(但它们有局限性,我让你去看看是哪一个),也许是
struct
,指针。这将花费您几周的时间,您需要阅读几本书(以及一些参考资料,例如,可能还需要浏览C11的规范,即)

(问问你自己,如果你的程序用户输入了50个字母,甚至100万个字母的名字,会发生什么或应该发生什么;如果输入了“错误”的字母,例如数字或标点符号,会发生什么?想想电脑里的名字到底是什么)

因为您只需要使用和,所以需要仔细阅读它们的规范。请注意,stdio通常是。也许你需要使用

然后,您可以将一个名称读入某个数据结构中(我让您去找出是哪一个),然后您可以使用
getchar
一次读取一个字符来填充该数据结构。同样,您可以使用
putchar
一次输出一个字符的数据结构

当然,您将使用一些原语(proba
#include <stdio.h>
int main(void)
{   
int name;
printf("Enter the user name: ");
    while ((name = getchar()) != EOF)
         putchar(name);
    return 0;
    }
char c=getchar();
char c;
putchar(c);