C++学习笔记——输入输出
- 输出
cout输出(printf也可以)
#include <iostream>//iostream-in out stream输入输出流
using namespace std;//添加命名空间std
int main()
{
int n=5;
double f=3.9;
char c='a';
cout<<"n="<<n<<",f="<<f<<endl;//endl换行
cout<<123<<",c="<<c;
return 0;
}
头文件包含了以下对象:
窄字符 | (char) |
---|---|
cin: | 标准输入流 |
cout: | 标准输出流 |
cerr: | 错误的标准输出流 |
clog: | 用于记录的标准输出流 |
宽字符 | (wchar_t) |
---|---|
wcin: | 标准输入流(宽) |
wcout: | 标准输出流(宽) |
wcerr: | 错误的标准输出流(面向广角) |
wclog: | 用于记录的标准输出流(宽) |
在C++中,输入输出流被定义为类。C++的I/O库中的类称为流类(stream class)。用流类定义的对象称为流对象。
- 输入
#include <iostream>
using namespace std;
int main()
{
int n1,n2;
double f;
char c;
cin>>n1>>n2>>c>>f;
cout<<n1<<","<<n2<<","<<c<<","<<f;
return 0;
}
在本段程序输入中,若输入5 10 K 1.23 其中10和K之间的空格会被跳过;若需要将空格也视为输入,则:
#include <iostream>
using namespace std;
int main()
{
int c;
while((c=cin.get())!=EOF){/*cin.get()读取每一个字符,其返回值是int类型,即该字符的ASCII码,所以需要一个int类型的C变量存取其ASCII码值。
在其读取了字符的情况下,返回值一定大于等于0,但也有可能小于0,当输入已经结束,还试图用cin.get()去读入,此时会返回-1,即EOF。
当输出时,需要对C强制转换类型。
EOF并不是输入结束的标志,输入流中并不会有EOF来代表输入的结尾,只是cin.get()已经读取不到数值,自己会返回-1,即EOF。
在键盘上让输入结束,CTRL+Z,再回车*/
cout<<(char)c;
}
return 0;
}
也可以用scanf()来读入所有输入的字符,包括空格,回车
#include <iostream>
#include <cstdio>//cstdio是将stdio.h的内容用C++头文件的形式表示出来,但是cstdio与stdio.h并不是同一个文件。
using namespace std;
int main()
{
char c;
while(scanf("%c",&c)!=EOF){
printf("%c",c);
}
return 0;
}
cin,cout执行速度慢于scanf,printf,且一个程序中不要同时使用cin和scanf或者cout和printf。