用scanf读入字符串
- 用scanf可以将字符串读入字符数组
- scanf会自动添加结尾的‘\0’
- scanf读入到空格为止
char line[100];
scanf("%s",line);//注意,不是&line
printf("%s",line);
/*
输入:
Fox River
输出:
Fox
*/
- 在数组长度不足的情况下,scanf可能导致数组越界
char line[5];
scanf("%s",line);
若输入“12345”,则会导致数组越界!
- cin输入字符串的情况和scanf相同
char line[5];
cin>>line;//若输入“12345”,则数组越界
读入一行到字符数字(如何包含空格)
- cin.getline(char buf[],int bufSize);
读入一行(行长度不超过bufSize-1)或bufSize-1个字符到buf,自动添加‘\’回车换行符不会写入buf,但是会从输入流中去掉。
————————————————
char line[10];
cin.getline(line ,sizeof(line));//或cin.getline(line,10);读入最多9个字符到line
cout<<line;
——————————————
/*
输入:
A b c
输出:
A b c
输入:
A b c1234567
输出:
A b c1234
*/
- gets(char buf[]);
读入一行,自动添加‘\0’
回车换行不会写入buf,但是会从输入流中去掉。可能导致数组越界
——————————
char s[10];
while(gets(s)){
printf("%s\n",s);
}
——————————