一般oj会提示只允许用scanf、printf及cin、cout。这里还介绍了一些其他的输入输出方式。
目录
printf("<式样化字符串>",<参量表>):返回输出的字符数
1.c语言
输入
scanf(格式,变量):
返回读入变量个数
停止方式:遇空格,换行时会停止。
类型 | 格式 | 变量 |
int | %d | &n |
long long int | %ld | &n |
unsinged int | %u | &n |
float | %f | &n |
double | %lf | &n |
char | %c | &n |
char[] | %s | n(数组名即可) |
getchar():
用来读入字符,包括"\n"。
使用:
char c1=getchar();
getchar();
输入ab。c1为a,b被吸收。
putchar(字符):
输出字符
gets(数组名):
停止方式:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。
使用:用于读入字符串。用gets_s函数更好。
fgets:
使用:键盘输入fgets(buf,n,stdin)
与gets相比使用这个好处是:读取指定大小的数据,避免gets函数从stdin接收字符串而不检查它所复制的缓存的容积导致的缓存溢出问题。
输出
printf("<式样化字符串>",<参量表>):
返回输出的字符数
特点:包含精度控制,进制转换。
格式 | 说明 |
%md | m 为指定的输出字段的宽度。如果数据的位数小于 m,则左端补以空格,若大于 m,则按实际位数输出。 |
%.mf | 输出实数时小数点后保留 m 位,注意 m 前面有个点。 |
%o | 以八进制整数形式输出 |
%x | 以十六进制整数形式输出 |
%s | 用来输出字符串 |
(不全,%c这样的就不写了)
puts:
使用:用于输出字符串。
2.c++语言
输入
cin:
停止方式:遇空格,换行时会停止。
所有类型均可以读入,常用。
getline(cin,字符串):
它会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束。1)到文件结束,2)遇 到函数的定界符,3)输入达到最大限度。
全局函数的getline(cin,str);处理后还留有结束符在输入流中,故需要使用cin.get();//接受最后一个结束符,才能接受后面得输入值。
cin.getline(字符数组名,长度,结束字符):
当第三个参数省略时,系统默认为'\0'
输出
cout:
所有类型均可以输出,常用。
3.oj的输入
只提一下,不告诉组数,没有输入结束提示符时的输入。
c语言:
while(scanf("%d",&n)!=EOF)
{
}
c++:
while(cin>>n)
{
}
未完待续...