C标准输入流
Posted Wecccccccc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C标准输入流相关的知识,希望对你有一定的参考价值。
标准输入流对象cin,重点掌握的函数:
cin.get()//一次只能读取一个字符
cin.get(一次参数)//读一个字符
cin.get(两个字符)//可以读字符串
cin.getline()
cin.ignore()
cin.peek()
cin.putback()
标准输入流cin.get()
代码如下:
#include <iostream>
using namespace std;
//标准输入流cin.get()
void test01()
{
char ch;
while ((ch = cin.get()) != EOF)
{
cout << ch << endl;
}
}
int main()
{
test01();
return 0;
}
cin.get()//一次只能读取一个字符
cin.get(一次参数)//读一个字符
cin.get(两个字符)//可以读字符串
cin.getline()
代码如下:
#include <iostream>
using namespace std;
void test01()
{
char ch;
//cin.get(ch);//读取一个字符
char buf[256] = { 0 };
//cin.get(buf, 256);//从缓冲区读一个字符串
cin.getline(buf, 256);//读取一行数据 不读换行符
cout << buf << endl;
}
int main()
{
test01();
return 0;
}
代码如下:
#include <iostream>
using namespace std;
void test01()
{
char ch;
cin.get(ch);
cout << ch << endl;
//cin.ignore();
cin.ignore(10,'\\n');//忽略当前字符 从缓冲区取走了
cin.get(ch);
cout << ch << endl;
}
int main()
{
test01();
return 0;
}
测试结果:
cin.peek()
代码如下:
#include <iostream>
using namespace std;
void test01()
{
cout << "请输入字符串" << endl;
char ch;
ch = cin.peek();//偷窥一下缓冲区,返回第一个字符 如果缓冲区没有,它会堵塞
if (ch <= '9' && ch >= '0')
{
int number;
cin >> number;
cout << "您输入的是数字" << number << endl;
}
else
{
char buf[256] = { 0 };
cin >> buf;
cout << "您输入的是字符串:" << buf << endl;
}
}
int main()
{
test01();
return 0;
}
测试结果:
cin.putback()
代码如下:
#include <iostream>
using namespace std;
void test01()
{
cout << "请输入字符串或者数字" << endl;
char ch;
cin.get(ch);//从缓冲区取走一个字符
if (ch <= '9' && ch >= '0')
{
cin.putback(ch);
int number;
cin >> number;
cout << "您输入的是数字" << number << endl;
}
else
{
cin.putback(ch);
char buf[256] = { 0 };
cin >> buf;
cout << "您输入的是字符串:" << buf << endl;
}
}
int main()
{
test01();
return 0;
}
以上是关于C标准输入流的主要内容,如果未能解决你的问题,请参考以下文章
避免来自 Python 标准输入流的控制序列(如 ^[[C)
避免来自 C 或 C++ 标准输入流的控制序列(如 ^[[C)
java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段