程序设计题目中的输入输出#
一般而言,为了输入输出方便,许多人喜欢cin,cout。一般没有问题,但是cout输出格式控制较麻烦,而且对于有些题目输出量超过1e6甚至1e5的话,就需要注意,使用cin可能会TLE。当然关同步是一种解决办法,使用最好的还是使用scanf和printf
输出一行的问题###
1.gets
char *gets(char *s);
gets从stdin中读入一行内容到s指定的buffer中,当遇到换行符或EOF时读取结束。读取成功时,返回s地址;失败时返回null。需要注意的是,gets会将行末尾的’ ’字符或EOF替换成’ ’,这样,gets读取的内容中不包括’ ’字符。如果要获取读取字符串的长度,可以调用strlen函数获得。
2.fgets
char *fgets(char *s, int size, FILE*stream);
fgets(buff,10,stdin);//fgets头文件为cstdio
fgets从stream中读取最多size-1大小的内容到s指定的buffer中,当遇到换行符或EOF时读取结束。读取成功时,返回s地址;失败时返回null。需要注意的是,fgets会在所读取的内容后面添加’ ’,这样,fgets读取的内容中会包括行末尾的’ ’字符。如果要获取读取字符串的长度,可以调用strlen函数获得。
3.getline
对于C++语言,如果使用C字符串的话,就采用cin.getline()函数,如果采用string型字符串的话,就采用全局函数getline(cin,n);
注意,这两个函数都不读入最后的换行符。
string s;
char str[256];
getline(cin, s);
cin.getline(str, sizeof(str));