C/C++输入输出
来源:互联网 发布:网络辱骂警察 编辑:程序博客网 时间:2024/05/02 01:31
C向控制台窗口的输入输出
使用头文件#include <stdio.h>
,使用scanf(),printf()函数输入输出;对于字符getchar(),putchar(),对于字符串还可使用gets(),puts()函数
1. scanf()和gets()区别
scanf(“格式控制字符串”,变量地址列表);接受字符串时:scanf(“%s”,字符数组名或指针);
gets(字符数组名或指针);
scanf不能接受空格、制表符Tab、回车等;而gets能够接受空格、制表符Tab和回车(Enter、Space、Tab) 等;scanf :当遇到(Enter、Space、Tab) 会自动在字符串后面添加’\0’,但是(Enter、Space、Tab) 仍会留在输入的缓冲区中;gets:可接受回车键之前输入的所有字符,并用’\0’替代 ‘\n’,回车键不会留在输入缓冲区中
C++向控制台窗口的输入输出
使用头文件#include<iostream>
,使用语句cin和cout控制输入和输出,其中有函数cin,cin.get(),cin.getline()等函数
1. cin>>
cin>>操作符是根据后面变量的类型读取数据
输入结束条件:遇到Enter、Space、Tab键
同scanf函数,结束符(Enter、Space、Tab) 仍在缓存中
2. cin.get()函数
cin.get()该函数有三种格式:无参,一参数,二参数即cin.get(),cin.get(char ch), cin.get(array_name, Arsize)
输入结束条件:Enter键
对结束符处理:不丢弃缓冲区中的Enter,其中ch=cin.get() 与 cin.get(ch)是等价的,输入一个字符
3. cin.getline()函数
cin.getline()与 cin.get(array_name,Arsize)的读取方式差不多,可以接受空格字符
输入结束条件:Enter键,并在缓存中丢弃
对结束符处理:按照长度(Arsize)读取字符, 会丢弃最后的Enter字符。但是这两个函数是有区别的:cin.get(array_name, Arsize)当输入的字符串超长时,不会引起cin函数的错误,后面的cin操作会继续执行,只是直接从缓冲区中取数据。但是cin.getline()当输入超长时,会引起cin函数的错误,后面的cin操作将不再执行
#include <iostream>using namespace std;int main(){ cout << "this is a test!" << endl; int e, f; cout << "请输入e,f" << endl; cin >> e >> f ; cout << "e=" << e << " " << "f=" << f << endl; cout << "#####" << endl; char ch[10];//string s; cin.getline(ch, 5);//getline(cin,s) cout << "请输入ch" << endl; cout << "ch="<<ch << endl; cout << "请输入x" << endl; char x=cin.get(); cout << "x="<<x<<endl; cin.get(); cin.get(); return 0;}
左侧输入依次为1 空格 2空格 3回车
,4回车
,右侧为1 空格 2回车
,4回车
,显然cin<<最后一个回车没有被丢弃,值得注意
C++string流读取写入
由于cin不能辨别回车和空格符,因此只能用getline的方式逐行读入数据到string实体中,现对string流进行介绍。
string流:sstream头文件定义了三个类型来支持内存IO,这些类型可以向string写入数据,从string读取数据,就像string是一个IO流一样。istringstream从string读取数据,ostringstream向string写入数据,而头文件stringstream既可从string读数据也可向string写数据,sstream头文件定中声明的标准类就利用了这一点,自动选择所必需的转换,而且,转换结果保存在stringstream对象的内部缓冲中。你不必担心缓冲区溢出,因为这些对象会根据需要自动分配存储空间
istringstream对象用来把一个已定字符串中的以空格、Tab隔开的内容提取出来,功能类似于C语言中的sscanf函数)只支持>>操作符,stringstream支持<<、>>操作符,str():使istringstream对象返回一个string字符串:
#include<iostream> #include<sstream> //istringstream 必须包含这个头文件#include<string> using namespace std; int main() { string str="i an a boy"; istringstream is(str); string s; while(is>>s) { cout<<s<<endl; } istringstream istr("1 56.7"); istr.str("1 56.7");//把字符串"1 56.7"存入字符串流中 }
输出是:iamaboy
C++对文件的的读取写入
使用如下进行文件读写操作
#include <fstream> ofstream //文件写操作,无文件将创建 内存写入存储设备 ifstream //已有文件读操作,无文件报错,存储设备读区到内存中 fstream //读写操作,对打开的文件可进行读写操作
ofstream file("fl.txt",iso::in|ios::out);//打开函数ostream file;//等价file.open("file.ext",iso::in|ios::out)file.close()//关闭函数
- C输入输出
- C输入输出
- C 输入输出
- C输入输出
- C输入输出
- C-输入输出
- C输入输出
- C 输入输出
- C输入输出
- 【C++】输入输出
- 【C】C语言输入输出缓冲区
- C/C++/Qt 控制台输入输出
- 经典c程序 输入输出
- C语言输入输出总结
- C语言详解 - 输入输出
- c 标准输入输出
- C语言输入输出总结
- C语言输入输出总结
- leetcode 392. Is Subsequence
- URAL 2067. Friends and Berries
- web前端技术
- 已知一个抽象类Shapge,该类中有一个方法GetArea。 要求定义一个Rectangle类,继承Shape类,实现GetArea方法计算矩形面积。
- 线程安全和可重入函数
- C/C++输入输出
- IMWeb训练营作业-----Vue+Bootstrap留言板
- java基础总结(1)
- C++中类的复制构造函数
- 页面制作HTML+CSS基础乱炖
- EBGAN总结
- Python3环境安装Scrapy爬虫框架过程及常见错误
- 将halcon中代码导出到vs2013执行
- startPreview()调用细节分析二