常见的网站推广方案,优秀作文网站都有哪些,wordpress 搞笑网站,top网站怎么做前言
C/C输入输出很多#xff0c;在不同的情况会用不同的输入输出#xff0c;有的题目在输入时可能换一种输入输出就能不会TLE#xff0c;有的输入可能要循环输入#xff0c;但是可以换一种输入直接就能把所有数据输入进去。C/C有哪些常用的输入输出#xff0c;在什么时候…前言
C/C输入输出很多在不同的情况会用不同的输入输出有的题目在输入时可能换一种输入输出就能不会TLE有的输入可能要循环输入但是可以换一种输入直接就能把所有数据输入进去。C/C有哪些常用的输入输出在什么时候用它们这篇博客我会一一详解。
输入
一、cin
cin是C的输入是C里面最常用的一种输入。既可以输入数字也可以输入字符、字符串。注意cin输入字符串时当遇到空格、回车、Tab都会结束。当需要输入空格时那要用什么后面会讲解。当输入空格字符时cin不会把空格读入进去。
#includeiostream
#includecstring
using namespace std;
int n;
string s;
char a,b,c;
int main(){cinn;cins;cinabc;cout数字为nendl;cout字符串为sendl;cout字符为a b cendl;return 0;
} 二、scanf
用于从标准输入读取格式化的输入例如整数、浮点数、字符串等,sacnf是C语言的输入但是广泛应用于C程序里面这是因为C语言的scanf比C的cin快3~4倍这是因为scanf是用指针操作的没有类型的安全机制比如char类型scanf可以用%f输入而不会报错但是运行时会出现异常。cin是自动判断你的变量类型比如char类型他会用默认的char方法%c取数据。这就会影响的效率。
scanf遇到空格、Tab、回车都会结束输入。
当我们看别人程序时前面会出现一行代码可以用这两行代码实现scanf与cin同步时间几乎是一样的。
ios::sync_with_stdio(false);
cin.tie(0);
scanf在输入时就比较个体化了不同的类型都有不同的输入表示。 #includeiostream
#includecstring
using namespace std;
int n1;
float n2;
double n3;
char ch[100],a,b;
int main(){scanf(%3d%f%lf,n1,n2,n3);//%3d接受三位数字 scanf(%s,ch);//不接受空格、Tab、回车 scanf(%c%c,a,b);printf(数字为%d %.3f %.2f\n,n1,n2,n3);//%f自动转成%lf printf(字符数组为%s\n,ch);//ch.c_str()printf(字符为%c %c\n,a,b);//%c可以吃空格 return 0;
} 注在C语言中scanf函数可以用于字符数组但是在C中scanf函数不能直接用于string类。因为string是C中的一个类而scanf函数是C语言的函数并不支持C的类类型。 三、gets
gets() 函数的功能是从输入缓冲区中读取一行字符串存储到字符指针变量 str 所指向的内存空间。可以接受空格、Tab但是不接受回车。
#includeiostream
#includecstring
using namespace std;
int n1;
float n2;
double n3;
char ch[100],a,b;
int main(){gets(ch); printf(%s,ch);return 0;
} 四、getchar
getchar()用于从标准输入流获取一个字符。getchar()函数每次从输入流中读取一个字符并返回该字符的ASCII码值整数类型。读取的字符可以是任意可打印字符、控制字符或特殊字符。常用于吃掉回车。
使用getchar()函数时程序会等待用户从键盘输入一个字符然后按下回车键确认。之后函数会将输入的字符返回给程序并继续执行后续的代码。
#include stdio.hint main() {int c;printf(请输入一个字符);c getchar();printf(\n你输入的字符是);putchar(c);return 0;
}五、fgets
fgets用于从文件流中读取一行字符串。它的原型如下
char *fgets(char *str, int n, FILE *stream);
参数说明 - str用于存储读取字符串的缓冲区的地址。 - n读取字符的最大数量包括终止符\0通常为缓冲区的长度。 - stream文件流指针指定从哪个文件流读取字符串。
fgets函数会从文件流中读取一行字符直到遇到换行符\n、文件结束符EOF或者读取字符达到了最大数量n-1为止。读取到的字符会存储在str所指向的缓冲区中并在末尾添加一个终止符\0。如果成功读取到字符则返回str的地址否则返回NULL。
#includestdio.hchar ch1[10];
char ch2[10];
int main()
{fgets(ch1,5,stdin);fgets(ch2,5,stdin);printf(ch1%s\n,ch1);printf(ch2%s,ch2);return 0;
}gets是无限读取fgets有了指定的大小。fgets函数相对于gets函数更加安全因为它可以指定读取字符的最大数量避免了缓冲区溢出的风险。同时fgets函数也可以用于读取文件中的文本行。 六、cin.get
cin.get函数是C标准库中的一个函数用于从输入流中读取字符。它的基本语法如下
cin.get(character);
其中character为一个字符变量用于存储从输入流中读取的字符。cin.get函数会读取输入流中的下一个字符无论该字符是空格、制表符还是换行符。读取成功后该字符会被存储到character变量中。它可以接受空格不接受回车回车结束输入。
cin.get函数可以和其他输入函数如cin或getline配合使用以实现更复杂的输入操作。例如可以使用cin.get函数读取一个完整的字符串然后使用其他函数处理该字符串。
示例代码如下
#include iostream
using namespace std;int main() {char character;cout 请输入一个字符: ;cin.get(character);cout 您输入的字符是: character endl;return 0;
}在上述示例中程序会提示用户输入一个字符并使用cin.get函数从输入流中读取该字符。然后程序会将读取到的字符输出到屏幕上。 七、cin.getline
cin.getline用法是从输入流中读取一行字符串并将其存储到一个字符数组中。它的语法是
cin.getline(字符数组名, 最大长度, 终止字符)
其中字符数组名是存储字符串的字符数组的名称最大长度是字符数组的长度终止字符是可选参数用于指定在哪个字符之前终止读取默认情况下是\n。如果读取的字符串的长度超过了最大长度超出部分的字符将被丢弃。
示例用法
char name[20];
cin.getline(name, 20);cout Hello, name ! endl;在这个例子中程序将从输入流中读取一个最大长度为19的字符串并将其存储到名为name的字符数组中。然后程序会输出一个问候语其中包括这个读取到的字符串。
需要注意的是cin.getline函数读取字符数组时会忽略开头的空白字符并在读取结束后自动添加一个空字符(\0)作为字符串的结束标志。因此在使用cin.getline函数读取字符串后可以直接将字符数组作为字符串处理。
注gets() , cin.getline()和cin.get()不能用在string类型中,五六七都不太常用。 输出
一、cout
cout 是 C 标准库中的输出流对象用于将数据输出到标准输出设备默认情况下是输出到屏幕上。可以输出数字、字符、字符串等。
在用于四舍五入时可以用iomainp库中的setprecision和fixed函数来输出保留小数位数。
#include iostream
#include iomanip
using namespace std;int main() {int num 123;double pi 3.14159;// 输出整数cout The number is: num endl;// 输出小数cout The value of pi is: pi endl;cout fixed setprecision(2) pi endl;//保留两位小数 // 输出字符串cout Hello, World! endl;return 0;
}二、printf
printf函数是C语言中的一个输出函数用于将指定的格式化数据输出。跟scanf一样输出时要用%d等输出,在格式化输出上非常好用。
一般情况下printf 比cout输出效率更高。
printf是C语言中的输出函数而cout是C中的输出流。是一个可变参数函数可以接受任意数量和类型的参数并按照格式化的方式输出。相比之下,cout是一个类型安全的输出流它使用插入()运算符来将数据插入到流中。printf的输出效率高主要是因为它是以低级别的系统调用方式来实现的。它直接使用底层的write函数将数据写入到文件描述符中绕过了一些高级别的缓冲区和类型安全检查等操作。这使得printf可以更快地将数据输出到终端或文件。而cout则是一个面向对象的输出流它使用了一些高级别的功能如类型安全检查、缓冲区管理、输出流状态管理等。虽然这些功能为开发者提供了更多的灵活性和易用性但也意味着在执行输出操作时需要更多的内存和处理时间。
#includestdio.hint main() {int num 123;printf(The number is %d\n, num); // 输出The number is 123float f 3.1415;printf(The value of pi is %.2f\n, f); // 输出The value of pi is 3.14char str[] Hello World;printf(The string is %s\n, str); // 输出The string is Hello Worldreturn 0;
}格式控制符用于指定输出的格式常用的格式控制符包括
%d输出一个有符号十进制整数。%f输出一个浮点数。%s输出一个字符串。%c输出一个字符。%p输出一个指针地址。%x输出一个无符号十六进制整数。 三、putchar
putchar函数用于单个字符的输出putchar函数在输出单个字符时比较高效因为它不需要进行格式化操作和缓冲区管理。它直接将字符输出到流中省去了一些额外的开销。下面是一个简单的使用例子
#include stdio.hint main() {int c A;putchar(c);return 0;
}四、puts
在C / C 中puts()函数用于在标准输出上打印字符串并在最后自动添加换行符。在题目输出一个数组时可以直接使用puts输出省去了for循环输出。
#include stdio.h
int main() {char str[] Hello, World!;puts(str);return 0;
}
该程序将打印出Hello, World!并自动添加换行符。 参考博客
C字符串的几种输入方法string和字符数组_c输入字符串数组-CSDN博客
C语言篇 字符数组与字符串输入_c字符数组 输入溢出-CSDN博客