如题所述
一、调用形式不同
gets()函数实现字符串的输入,其调用形式为:gets(字符数组);
调用puts()函数实现字符串的输出,其调用形式为:puts(字符数组);
二、格式
scanf语句的一般格式如下:
scanf("格式字符串", 地址,…);
printf语句的一般形式如下:
printf( "格式字符串", 表达式, ... );
该语句将"表达式"按照"格式字符串"给定的格式,显示在屏幕上。"格式字符串"包括文本字符、转义字符和格式说明符。
三、结束方式
使用scanf("%s", &s)函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符串直到回车为止。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-12-19
1. 字符串输入函数gets()
调用gets()函数实现字符串的输入,其调用形式为:
gets(字符数组);
功能:从终端输入一个字符串(包括空格)赋给从字符数组起始的存储单元中,直到读入一个回车符为止。回车符读入后,不作为字符串的内容,系统将自动用’\0’替换,作为字符串结束的标志。如:
char c[20];
gets(c);
执行上面的语句,如果输入:How are you!<CR>
则将读入的12个字符依次存入到c[0]开始的存储单元中,并在其后自动加入一个字符串结束标志’\0’。
2.字符串输出函数puts()
调用puts()函数实现字符串的输出,其调用形式为:
puts(字符数组);
功能:将字符数组起始地址开始的一个字符串(以’\0’结束的字符序列)输出到终端,并将字符串结束标志’\0’转化成’\n’,自动输出一个换行符。如:
char c[ ]= "How\nare\nyou!";
puts(c);
输出结果:
How
are
you!
printf和scanf是标准的C输出输入语句,在C语言标准的头文件stdio.h中定义。但在C++中,它们也能够被使用。
一、 printf输出
printf语句的一般形式如下:
printf( "格式字符串", 表达式, ... );
该语句将"表达式"按照"格式字符串"给定的格式,显示在屏幕上。"格式字符串"包括文本字符、转义字符和格式说明符。
如果我们只要打印简单的信息,并不需要包括"表达式",例如,要打印信息:"今天是星期二",可以使用下面的printf语句:
printf("Today is Thursday");
这个语句执行的结果为: Today is ThursdayPress any key to continue
需要注意的是:输出的信息与系统提示连在一起。为了解决这个问题,可以使用转义字符,常用的转义字符参见2.4.3节的内容。
二、 scanf输入
scanf语句的一般格式如下:
scanf("格式字符串", 地址,…);
scanf语句用"格式字符串"控制键盘读入的方式。"格式字符串"中一般只包括格式说明符,它们与printf语句中的一样,而"地址"是指变量在内存中的位置。我们看看下面的程序实例,它定义了一个int、float、char和char []变量,并使用了格式说明符:
#include <stdio.h>
#define MAX_WORD 20
void main()
{
int x;
float a;
char ch, empty;
char word[MAX_WORD];
printf("Enter an integer: ");
scanf("%d", &x);
printf("Enter a float: ");
scanf("%f", &a);
fflush(stdin); // 清空输入缓冲区
printf("Enter a character: ");
scanf("%c", &ch);
printf("Enter a string: ");
scanf("%s", word);
printf("Your integer was: %d\n", x);
printf("Your float was: %f\n", a);
printf("Your character was: %c\n", ch);
printf("Your word was: %s\n", word);
}
调用gets()函数实现字符串的输入,其调用形式为:
gets(字符数组);
功能:从终端输入一个字符串(包括空格)赋给从字符数组起始的存储单元中,直到读入一个回车符为止。回车符读入后,不作为字符串的内容,系统将自动用’\0’替换,作为字符串结束的标志。如:
char c[20];
gets(c);
执行上面的语句,如果输入:How are you!<CR>
则将读入的12个字符依次存入到c[0]开始的存储单元中,并在其后自动加入一个字符串结束标志’\0’。
2.字符串输出函数puts()
调用puts()函数实现字符串的输出,其调用形式为:
puts(字符数组);
功能:将字符数组起始地址开始的一个字符串(以’\0’结束的字符序列)输出到终端,并将字符串结束标志’\0’转化成’\n’,自动输出一个换行符。如:
char c[ ]= "How\nare\nyou!";
puts(c);
输出结果:
How
are
you!
printf和scanf是标准的C输出输入语句,在C语言标准的头文件stdio.h中定义。但在C++中,它们也能够被使用。
一、 printf输出
printf语句的一般形式如下:
printf( "格式字符串", 表达式, ... );
该语句将"表达式"按照"格式字符串"给定的格式,显示在屏幕上。"格式字符串"包括文本字符、转义字符和格式说明符。
如果我们只要打印简单的信息,并不需要包括"表达式",例如,要打印信息:"今天是星期二",可以使用下面的printf语句:
printf("Today is Thursday");
这个语句执行的结果为: Today is ThursdayPress any key to continue
需要注意的是:输出的信息与系统提示连在一起。为了解决这个问题,可以使用转义字符,常用的转义字符参见2.4.3节的内容。
二、 scanf输入
scanf语句的一般格式如下:
scanf("格式字符串", 地址,…);
scanf语句用"格式字符串"控制键盘读入的方式。"格式字符串"中一般只包括格式说明符,它们与printf语句中的一样,而"地址"是指变量在内存中的位置。我们看看下面的程序实例,它定义了一个int、float、char和char []变量,并使用了格式说明符:
#include <stdio.h>
#define MAX_WORD 20
void main()
{
int x;
float a;
char ch, empty;
char word[MAX_WORD];
printf("Enter an integer: ");
scanf("%d", &x);
printf("Enter a float: ");
scanf("%f", &a);
fflush(stdin); // 清空输入缓冲区
printf("Enter a character: ");
scanf("%c", &ch);
printf("Enter a string: ");
scanf("%s", word);
printf("Your integer was: %d\n", x);
printf("Your float was: %f\n", a);
printf("Your character was: %c\n", ch);
printf("Your word was: %s\n", word);
}
第2个回答 推荐于2018-02-27
printf()函数
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:
printf("<格式化字符串>", <参量表>);
其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原
样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,
用来确定输出内容格式。
scanf()函数
scanf()函数是格式化输入函数, 它从标准输入设备(键盘) 读取输入的信息。其调用格式为:
scanf("<格式化字符串>", <地址表>);
格式化字符串包括以下三类不同的字符;
1. 格式化说明符: 格式化说明符与printf()函数中的格式说明符基本相同。
2. 空白字符: 空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。
3. 非空白字符: 一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
地址表是需要读入的所有变量的地址, 而不是变量本身。这与printf()函数完全不同, 要特别注意。各个变量的地址之间同","分开。
puts()函数
puts()函数用来向标准输出设备(屏幕)写字符串并换行, 其调用格式为:
puts(s); 其中s为字符串变量(字符串数组名或字符串指针)。
puts()函数的作用与语printf("%s\n", s)相同。
gets()函数
gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符不属于这个字符串。其调用格式为:
gets(s);
其中s为字符串变量(字符串数组名或字符串指针)。
gets(s)函数与scanf("%s", &s)相似, 但不完全相同, 使用scanf("%s", &s)函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符串直到回车为止。
printf scanf是格式化输入输出函数:更清晰标准
puts gets是非格式化输入输出函数 :编译后代码少, 相对占用内存也小, 从而提高了速度, 同时使用也比较方便。下面分别进行介绍。本回答被提问者和网友采纳
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:
printf("<格式化字符串>", <参量表>);
其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原
样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,
用来确定输出内容格式。
scanf()函数
scanf()函数是格式化输入函数, 它从标准输入设备(键盘) 读取输入的信息。其调用格式为:
scanf("<格式化字符串>", <地址表>);
格式化字符串包括以下三类不同的字符;
1. 格式化说明符: 格式化说明符与printf()函数中的格式说明符基本相同。
2. 空白字符: 空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。
3. 非空白字符: 一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
地址表是需要读入的所有变量的地址, 而不是变量本身。这与printf()函数完全不同, 要特别注意。各个变量的地址之间同","分开。
puts()函数
puts()函数用来向标准输出设备(屏幕)写字符串并换行, 其调用格式为:
puts(s); 其中s为字符串变量(字符串数组名或字符串指针)。
puts()函数的作用与语printf("%s\n", s)相同。
gets()函数
gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符不属于这个字符串。其调用格式为:
gets(s);
其中s为字符串变量(字符串数组名或字符串指针)。
gets(s)函数与scanf("%s", &s)相似, 但不完全相同, 使用scanf("%s", &s)函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符串直到回车为止。
printf scanf是格式化输入输出函数:更清晰标准
puts gets是非格式化输入输出函数 :编译后代码少, 相对占用内存也小, 从而提高了速度, 同时使用也比较方便。下面分别进行介绍。本回答被提问者和网友采纳