scanf()
scanf按%d输入数字或%s输入字符串时,忽略空格、回车或制表符等空白字符(被作为数据的分隔符)
int main()
{
int a = 0;
int b = 0;
char c[12];
scanf("%s", &c);
printf("c=%s",c);
return 0;
}
空格后面的world没有被读进去
加一句scanf语句,world被读走了
int main()
{
int a = 0;
int b = 0;
char c[12];
printf("请输入一行文本:");
scanf("%s", &c);
printf("c=%s",c);
scanf("%s", &c);
printf("\nc=%s", c);
return 0;
}
gets()
gets()可以输入带空格的字符串,以回车符作为终止符,同时将回车符从缓冲区读走,但不作为字符串的一部分,而scanf()不读走回车符,回车符仍留在输入缓冲区中
int main() {
char str[100]; // 声明一个字符数组来存储输入的字符串
printf("请输入一行文本:");
gets(str); // 从标准输入读取一行字符串并存储在str中
printf("您输入的文本是: %s\n", str);//gets()可以输入带空格的字符串
return 0;
}
puts()
puts()遇到第一个'\0'时输出结束
#include <stdio.h>
int main() {
char str[100]; // 声明一个字符数组来存储输入的字符串
printf("请输入一行文本:");
gets(str); // 从标准输入读取一行字符串并存储在str中
printf("您输入的文本是: %s\n", str);//gets()可以输入带空格的字符串
puts(str);//puts()遇到第一个'\0'时输出结束
return 0;
}
函数puts()输出字符串简洁,唯一不足是不能像函数printf()那样在输出行中增加一些其他信息(如"请输入"等)并控制输出的格式
gets()与puts()都是c语言的标准输入输出库函数,在使用时只要在程序开始将头文件<stdio.h>包含到源文件中即可
fgets()
gets()与scanf()不能限制输入字符串的长度,很容易引起缓冲区溢出
fgets()更有利设计安全可靠的程序,fgets()是gets()的文件操作版
#include <stdio.h>
int main() {
char str[100]; // 声明一个字符数组来存储输入的字符串
printf("请输入一行文本:");
fgets(str, sizeof(str), stdin); // 从标准输入读取一行字符串并存储在str中
printf("您输入的文本是: %s\n", str);
return 0;
}
fgets(str, sizeof(str), stdin);
*这一句是为了限制输入字符串的长度不超过数组大小
标签:puts,scanf,字符串,str,printf,fgets,gets,输入 From: https://blog.csdn.net/2301_79760619/article/details/139523325