C语言
-
scanf
除了%c
以外,对其他格式符的输入是以空白符(空格,TAB,回车)作为结束标志 -
因此
scanf
除非%c
把空格按字符读入,其他情况会跳过空格 -
%c
可以接收空格,tab,回车 -
字符串使用
%s
读入时,是以空格和换行作为读入结束标志 -
使用
getchar
,putchar
输入输出单个字符getchar
可以识别换行符,所以敲回车的时候如果后面有getchar
就会被存进去
-
2#3
这种有格式的输入,不要忘记scanf
里面要保持这个格式 -
gets
用于输入一行字符串,puts
用于输出字符串,并外加了一个换行- 如果
gets
前面还有一个scanf
或者cin
,记得用getchar
吸收
- 如果
-
实用输出格式
//%md 超过或等于m位保持原样,不足m位,高位用空格补齐 printf("%5d"); //%0md 超过或等于m位保持原样,不足m位,高位用0补齐!!!!!!非常好用 printf("%05d"); //%.mf 保留m位小数输出 printf("%.5f");
C++
- 控制输出位数
#include<iomanip> //控制时要加入这个头文件
cout << setiosflags(ios::fixed)<<setprecision(2)<<123.4567<<endl;//控制输出位数
string
只能用cin,cout
输入输出2#3
这种有格式的输入,可以另外一个char变量,cin>>ch吸收它getline
用于输入一整行字符串- 如果
getline
前面还有一个scanf
或者cin
,记得用getchar
吸收
- 如果
//string类型
string str;
getline(cin, str);
//char *类型
char s[20];
cin.getline(s, 20);
- 使用
map
时,字符串到整型映射,必须用string
案例
//输入格式:字符串1 字符串2 字符串3 ...数量未知
//输入格式:数字1 数字2 数字3 ...
//这种限于后面没有其他输入了
//这也是输入多组数据,组数未知的方式
while(scanf("%s")!=EOF){
}
/*
输入格式:
123 [数字]
aa bb cc [是一个整体的字符串]
字符串1 字符串2 字符串3 ... [组数未知的多组字符串]
1998 [数字]
*/
//c++
cin>>id;
getchar(); //注意!!
getline(cin,str1);
while(cin>>str2){
...
char ch = getchar();
if(ch == '
') break; //注意!!
}
cin>>num;
//c语言
scanf("%d",&n);
getchar(); //注意!!
gets(str);
while(scanf("%s",str2)!=EOF){
...
char ch = getchar();
if(ch == '
') break;
}
scanf("%d",&num);