这几天对前面的知识又看了一遍,有些东西想总结比较下: 对于c和c++的输入输出函数想必大家都很熟悉,但有多少呢? putchar() getchar() puts() gets() getline() printf() scanf() cout<< cin>>等函数 putchar()和getchar()是对单个的字符的输入输出: char a=`A`,b=`B `; putchar(a);或putchar(`A`); puts()和gets()是针对字符数组的输入输出: char str[50 ]; gets(str); 从键盘输入: How are you! puts(str); 屏幕上输出: How are you! 而对于printf()和scanf() ,cout<< ,cin>>可没有这样的待遇啊!因为他们只将空格前的字符读入,所以用他们只会在屏幕上显示How 对于没有空格的字符串如:char c[6 ]={"China"};有两种方式输出: ①逐个的字符输出便要用到for循环利用下标控制来逐个字符输出: for(i=0;i<6;i++) printf("%c",c[i]); ②整个字符串一次输入输出,用"%s"格式符,当字符串(String) printf("%s",c); 同样scanf也可以用"%s"格式符输入数据! 在c++中对数组的输入可以不用下标控制来输入: char a[10]; cin>>a; cout<<a<<endl; 而scanf却不可以这样,因为他要逐个读入数据,要用到for循环控制下标!也可以用"%s"来整体读入,但不可有空格! getline()总是将行末的回车符滤掉,若有许多行,且行中还夹杂着其他类型的数据时,借助于getline然后在逐个分解行中数据是简明的! char a[40]; cin.getline(a,40 string s; getline(cin,s); cout<<s<<endl; 还有就是关于流的用法,他主要是针对外部设备的数据读取,即非标准设备的数据读取,他需要建个输入流和输出流! ifstream in("aaa.txt"); in就是文件数据的象征!再利用getline输到容器中赋值! 最后有一点就是如果数据中有空格或换行时,scanf和cin都无法识别并读入空格或换行后的数据,所以对这样的数据我们就要用到关于get的函数来读取!

评论