今天养殖艺技术网的小编给各位分享标准输入 输出流有哪些的养殖知识,其中也会对c语言中读和写,哪个对应输入,哪个对应输出?(c语言中读入 写入的区别)进行专业解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在我们开始吧!
c语言中读和写,哪个对应输入,哪个对应输出?
写是输入,读是输出
c语言和c++语言的输入输出函数分别是什么
c++语言中的是输入函数cin,输出函数是cout;
c语言中的输入函数是scanf,输出函数是printf。
Java中标准输入、输出时指什么?
Java遵循标准I/O的模型,提供了Syetem.in,System.out,以及System.err.
SYStem.in是标准输入,System.out是标准输出
一般用System.out.println();标准输出到控制台;
标准输入从键盘上输入,System.in.read();
C语言中流是什么意思?
流是磁盘或其它外围设备中存储的数据的源点或终点。”。这是在《C程序设计语言》上的原话。
据我的理解,流主要是指一种逻辑上的概念,它提供或存储数据。产生数据的叫输入流,消耗数据的叫输出流。至于怎么产生,又怎么消耗,这是一种物理上的实现,根据每种设备有所不同,但C语言中对它们一视同仁,以一个“流”字来概括它们的特征。作为流的使用者来说,不需要关心太多的细节。流的实现保证了它具有它所声明的特性。C语言中对流除了分为I/O流之外,还分为文本流与二进制流。文本流的特点是流由文本行组成,每一行有0个或多个字符并以’\n’字符结束,即它是有一定意义的,以某种字符集的字符组成的一个序列。一个文本流,读入与写出时可能会对其内容作更改,因为它是有一定意义的,系统可以识别并在适当时候解释,比如在输出文本流中碰到’\b’时,系统的操作是将输入流中的前一个字符删除,在终端上显示就是在它前面输出的这个字符被删除了;二进制流则完成是由一些“生”的,未经处理的数据组成的,C语言将它们看成由0与1组成的序列来读与写,所以它们的特性是同一系统中把同一二进制流读入与写出,其内容没有任何变化。
Java中的IO流与标准输入输出流有什么关系?
输入输出流的父亲都是io流。都是继承至IO流的。
cc++标准输入输出语句
C语言输入输出总结
C语言中基本的输入输出函数有:
putchar ():把变量中的一个字符常量输出到显示器屏幕上;
getchar ();从键盘上输入一个字符常量,此常量就是该函数的值; printf ();把键盘中的各类数据,加以格式控制输出到显示器屏幕上; scanf ();从键盘上输入各类数据,并存放到程序变量中;
puts ():把数组变量中的一个字符串常量输出到显示器屏幕上;
gets ():从键盘上输入一个字符串常量并放到程序的数组中.
putchar() 和 getchar()就是从输入流中获取一个字符和输出一个字符。 例子如下:
char c = getchar();
putchar(c);
printf():
一般形式:
printf("格式控制".输出列表);
例如 : printf("a=%d,b=%f,c=%c\n",a,b,c);
1;格式控制.
格式控制是用双引号括起来的字符串,包含以下两部分信息.
(1)、格式说明:由"%"和格式字符组成,如%d,%f,%c,他的作用是把输出数据转换为指定格式输出,格式的说明总是由"%"字符开始的.
(2)、普通字符:需要原样输出的字符,或者是一些有特殊含义的字符,如\n,\t。
2;输出列表
就是需要输出的一些数据,也可以是表达式,如果在函数中需要输出多个变量或表达式,则要用逗号隔开.
一些特殊字符的输出:
单引号,双引号,和反斜杠的输出在前面加转义字符”\”
如:”\’” , “\”” , “\\”
%的输出用两个连在一起的%%,即printf(“%%”);
常用的格式说明如下:
格式字符
d 以十进制形式输出带符号整数
o 以八进制形式输出无符号整数
x 以十六进制形式输出无符号整数(
u 以十进制形式输出无符号整数
f 以小数形式输出单精度实数
lf以小数形式输出双精度实数
e 以指数形式输出单、双精度实数
c 输出单个字符
s 输出字符串
精度
精度格式符以“.”开头,后跟十进制整数。意义是:如果输出数字,则表示小数的位数;如果输出的是字符, 则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
标志格式字符
- 结果左对齐,右边填空格
+ 输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号
例如:
double c=24212345.24232;
printf(“%20.4”); 表示输出精确到小数点后4位,输出占20位。 scanf:
scanf以空格或者以自己定义的符号区分不同的数据,且他会自己去掉输入的空格,以回车表示输入结束。
说一下scanf一个特别好用的地方,就是可以滤去一些不想要的东西。 举例说明如下:
比如输入为日期 yyyy-mm-dd,就可以这样写:
int year,moth,day;
scanf(“%d-%d-%d”,&year,&moth,&day);
再比如:
scanf("%3d %*3d %2d",&m,&n); 输入113 118 69回车(系统将113赋予m,将69赋予n,因为*号表示跳过它相应的数据所以118不赋予任何变量)
puts()用的不多,且基本都能用printf()代替,就是把括号里面用引号包围的东西全部输出到显示器。
gets()是从输入流中获取一行字符串放入字符数组中:
char in[100];
gets(in);
能进行字符,字符串输入的有:
getchar(), scanf(“%c”); scanf(“%s”), gets()
其中getchar() 和 scanf(“%c”)的功能是一样的。
需要注意的是,这两个函数读入的是输入缓冲区中当前位置的字符,
比如:
scanf(“%d”,&n);
c = getchar();
假设输入 67enter,则第一个scanf读入一个整数67后,当前输入流的位置是67之后,即指向回车符,所以第二个getchar()读入的就是一个回车符了,即 c = ‘\n’。
第2/5页
同样,gets()也是从输入缓冲区当前位置读入一行字符串。
比如:
scanf(“%d”,&n);
gets(str);
此时读入字符数组中的字符串就是“\n” 了
所以通常在用scanf读入一个非字符串的类型之后,如果要读入字符,或字符数组,都用一个额外的getchar()把回车符读掉,若后面跟的不止一个回车符,可能还有多余的空格的话,就用gets()读掉。
和以上不同的是,scanf(“%s”) 读入的时候是会忽略掉空格,回车和制表符的。并且以空格,回车和制表符作为字符串结束的标志。
C++输入输出总结
C++的一些输入方式包括:cin<<,cin.get(),cin.getline()。分别介绍如下: Cin<<:
该操作符是根据后面变量的类型读取数据,遇到空格、tab键、enter键输入结束。但是它会丢弃使得输入结束的结束符。 Cin.get():
该函数有三种格式:无参,一参数,二参数
即cin.get(), cin.get(char ch), cin.get(array_name, Arsize) 读取字符的情况:
输入结束条件:Enter键
对结束符处理:不丢弃缓冲区中的Enter
cin.get() 与 cin.get(char ch)用于读取字符,他们的使用是相似的, 即:ch=cin.get() 与 cin.get(ch)是等价的。
读取字符串的情况:
cin.get(array_name, Arsize)是用来读取字符串的,可以接受空格字符,遇到Enter结束输入,按照长度(Arsize)读取字符, 会丢弃最后的Enter字符。但是如果输入的数据长度超过给出的范围。其会按给出的arsize进行取舍。
三.cin.getline()
cin.getline() 与 cin.get(array_name, Arsize)的读取方式差不多,以Enter结束,可以接受空格字符。按照长度(Arsize)读取字符, 会丢弃最后的Enter字符。
但是这两个函数是有区别的:
cin.get(array_name, Arsize)当输入的字符串超长时,不会引起cin函数的错误,后面的cin操作会继续执行,只是直接从缓冲区中取数据。但是
cin.getline()当输入超长时,会引起cin函数的错误,后面的cin操作将不再执行。例如:
第3/5页
【分析】与cin.get(array_name, Arsize)的例程比较会发现,这里的ch并没有读取缓冲区中的e,而是返回了-52,这里其实cin>>ch语句没有执行,是因为cin出错了!
4、输入时易出错的地方:
有下面一段程序:
运行结果:
分析:程序之所以执行错误,没让读入一个字符是因为:cin>>和cin.get()都是从键盘缓冲区中读入的,当用户输入100并按回车时,此时换行符会被存储在键
第4/5页
盘缓冲区中cin.get()读入的是换行符,所以就没有输入字符的机会。从而导致程序运行失败。
解决办法:
Cin的后面加上cin.ignore(n,c) 其中括号里的参数是可以选择的,n是一个整数c是一个字符。含义是该函数跳过n个字符或者直到遇到C为止。如果次函数没有参数的话,表示键盘缓冲区的一个字符。解决后的程序为:
。
C++ 的输入方式:
C++的基本的输出是用cout<<
他的作用是输出《后的信息到控制台。
其常见的格式化输出形式有:
1、dec:按十进制输出.
2、Hex:按十六进制输出。
3、Oct:按八进制输出。
4、Endl:换行。
5、 Setw(n):为每个输入数据指定宽度。其中浮点数的宽度包括小数点所占的位置、默认的输出为右对齐、字符串中的空格也属于有效的空格并占宽度。且此操作仅对与其相邻的一个输出项有效。
6、Setprecision():指定浮点数的输出精度,即输出的有效数字的个数,且采用四舍五入对小数进行取舍。精度的设置在他北从新设置以前一直有效。 另外也可以使用函数成员实现输出:
如设置域宽用cout.width(n);
设置精度用:cout.precision();
Cout 的函数成员setf用来设置状态标志:比如设置小数点的位数、左右对其等。 其于操作法setiosflags的功能相同。
C++ 输入输出流是什么意思??
可以把流看作是一种数据的载体,通过它可以实现数据交换和传输。就像水流是一串水组成的 计算机中的数据流就是由一串数据组成的东西。
C++ 输入输出流是什么意思?
可以把流看作是一种数据的载体,通过它可以实现数据交换和传输。就像水流是一串水组成的 计算机中的数据流就是由一串数据组成的东西。
C++的输入输出流及文件操作
1. C++保留C的输入输出单个字符的函数
(1) putchar(c) —— 字符输出
例程:
#include
using namespace std;
int main()
{
char a,b,c;
a='B'; b='O';c='Y';
putchar(a); putchar(b); putchar(c);putchar('/n');
putchar(66);putchar(79);putchar(89);putchar(10); //10是换行的ASCII码
return 0;
}
(2) getchar() ——字符输入函数
例程:
#include
using namespace std;
int main()
{
char c;
c=getchar();
putchar(c+32); //转化为小写字母,大小写之间包括[ / ] ^ - 、6个字符,因此不加26加32。'A'=65
putchar('/n');
return 0;
}
也可用cout来输出: cout<<(c=getchar()+32);
2. scanf()、printf()函数的输入和输出
scanf(格式控制,输出表列);
printf(格式控制,输出表列);
例程:
#include
using namespace std;
int main()
{
int a;
float b;
char c;
scanf("%d % c % f", &a,&c,&b);
printf("a=%d, b=%f, c=%c /n",a,b,c);
return 0;
}
3. 标准输入输出流cin、cout
包括头文件#include
输入输出流的控制符要加入头文件 #include
cout<<"dec:"<
cout.put(97); //显示a字符--使用cout的成员函数put(c)
cin成员函数get()
(1) 不带参数的
char c=cin.get(); //用cin的成员函数get()从键盘读入一个字符到c中去
(2) 带一个参数的
cin.get(ch); //从输入的流中接受一个字符,并赋给字符变量ch
(3) 带三个参数的
cin.get(字符数组,字符的个数n,终止字符)
例程:
#include
using namespace std;
int main()
{
char ch[20];
cout<<"in put a string:"<
cin.get(ch,10,'/n'); /*取得输入流的前10-1=9个字符赋值给ch数组的前9个元素,并规定换行符为为输入流的终止结束符*/
cout<
return 0;
}
如输入:1 2 34567890 //按换行键终止流输入
则输出:1 2 34567 //只读得前9个送入ch数组中
cin的成员函数getline() ——从输入流中读入一行字符
cin.getline(字符数组(或字符指针),字符的个数n,终止字符)
例程:
#include
using namespace std;
int main()
{
char ch[20];
cout<<"input a string:"<
cin>>ch;
cout<<"The string read with cin is:"<
cin.getline(ch,20,'/'); //读取19个字符到ch数组或遇到'/'结束
cout<<"The second part is:"<
cin.getline(ch,20); //读取19个字符到ch数组或遇到'/n'结束,遇到'/'仍作为字符读入
cout<<"The third part is:"<
return 0;
}
istream类的其他的成员函数如:eof(),在输入流中读取数据,如果到达末尾(遇到文件结束符),则eof()返回真,否则为假.
例程:
#include
using namespace std;
int main()
{
char c;
while(!cin.eof()) //若未遇到文件结束符
if((c=cin,get())!=' ') //检查读入的字符是否为空格字符
cout.put(c);
return 0;
}
4. 磁盘文件的打开和关闭
打开
ofstream outfile;
if(outfile.open("f1.data",ios::app)==0) // 打开
cout<<"打开失败!";
……………………
outfile.close(); //关闭
5. 文件写入
#include
#include
#include //一定不能少了,否则报错 error C2679
using namespace std;
int main()
{
string str;
ofstream out("d.txt",ios::out); //等价于ofstream out("d.txt")
if(!out) //若打开失败,out返回0值
{
cerr<<"打开失败!"<
exit(0);
}
str="床前明月光/n疑是地上霜/n举头望明月/n低头思故乡/n";
out< return 0;
}
6. 读文件到控制台
#include
#include
#include
using namespace std;
int main()
{
ifstream infile("d://new//d.txt",ios::in); //定义输入文件的流对象,以输入方式打开磁盘文件d.txt,第二个参数可去
if(!infile)
{
cerr<<"打开失败!"< exit(1);
}
for(string str;getline(infile,str);) //逐行打开并逐行显示,因此在循环中实现
cout< infile.close();
return 0;
}
或把 for(string str;getline(in,str);)
cout<
两句改为 string str;
while(getline(in,str))
cout<
7. 文件复制
#include
#include
#include
using namespace std;
int main()
{
ifstream in("d.txt");
if(!in)
{
cerr<<"打开源文件失败!"< exit(1);
}
ofstream out("b.txt");
if(!out)
{
cerr<<"打开目的文件失败!"< exit(1);
}
for(string str;getline(in,str);)
out< cout<<"文件复制成功!"<
in.close();
out.close();
return 0;
}
8. 自定义一个文件读入的函数 void display( char *filename)
#include
#include
#include
using namespace std;
void display(char *filename)
{
ifstream infile(filename,ios::in);
if(!infile)
{
cerr<<"打开失败!"< exit(1);
}
char ch;
while(infile.get(ch))
cout.put(ch);
cout< infile.close();
}
int main()
{
display("d.txt");
return 0;
}
9.关于文件读写的综合应用
#include
#include
using namespace std;
//从键盘读入字母并存入文件“d.txt”中
void save_to_file()
{
ofstream ofile("d.txt");
if(!ofile)
{
cerr<<"打开失败d.txt!"< exit(1);
}
char c[80];
cin.getline(c,80); //从键盘逐个读入一行字符
for(int i=0;c[i]!=0;i++) //对字符逐个处理,知道遇到'/n'结束
if(c[i]>=65 && c[i]=97 && c[i]<=122)
{
ofile.put(c[i]); //将字母存入磁盘文件d.txt
cout< }
cout< ofile.close();
}
//将"d.txt"中的字母转化为大写字母并存入"out.txt"中
void get_from_file()
{
char ch;
ifstream infile("d.txt");
if(!infile)
{
cerr<<"打开失败d.txt!"< exit(1);
}
ofstream outfile("out.txt");
if(!infile)
{
cerr<<"打开失败out.txt!"< exit(1);
}
while(infile.get(ch)) //逐个读入字符成功后执行下面的语句
{
if(ch>=97 &&ch<=122)
ch=ch-32;
outfile.put(ch);
cout< }
cout< infile.close();
outfile.close();
}
int main()
{
save_to_file();
get_from_file();
return 0;
}
=========================== C/C++的字符或字符数组的读入函数总结=====================
1、cin
1、cin.get()
2、cin.getline()
3、getline()
4、gets()
5、getchar()
1、cin>>
用法1:最基本,也是最常用的用法,输入一个数字:
#include
using namespace std;
main ()
{
int a,b;
cin>>a>>b;
cout<}
输入:2[回车]3[回车]
输出:5
用法2:接受一个字符串,遇“空格”、“TAB”、“回车”都结束
#include
using namespace std;
main ()
{
char a[20];
cin>>a;
cout<}
输入:jkljkljkl
输出:jkljkljkl
输入:jkljkl jkljkl //遇空格结束
输出:jkljkl
2、cin.get()
用法1: cin.get(字符变量名)可以用来接收字符
#include
using namespace std;
main ()
{
char ch;
ch=cin.get(); //或者cin.get(ch);
cout<}
输入:jljkljkl
输出:j
用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
#include
using namespace std;
main ()
{
char a[20];
cin.get(a,20);
cout<}
输入:jkl jkl jkl
输出:jkl jkl jkl
输入:abcdeabcdeabcdeabcdeabcde (输入25个字符)
输出:abcdeabcdeabcdeabcd (接收19个字符+1个'/0')
3、cin.getline() // 接受一个字符串,可以接收空格并输出
getline 会将换行符替换为空字符
#include
using namespace std;
main ()
{
char m[20];
cin.getline(m,5);
cout<}
输入:jkljkljkl
输出:jklj
接受5个字符到m中,其中最后一个为'/0',所以只看到4个字符输出;
如果把5改成20:
输入:jkljkljkl
输出:jkljkljkl
输入:jklf fjlsjf fjsdklf
输出:jklf fjlsjf fjsdklf
//延伸:
//cin.getline()实际上有三个参数,cin.getline(接受字符串的看哦那间m,接受个数5,结束字符)
//当第三个参数省略时,系统默认为'/0'
//如果将例子中cin.getline()改为cin.getline(m,5,'a');当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk
当用在**数组中的时候,也可以用cin.getline(m[i],20)之类的用法:
#include
#include
using namespace std;
main ()
{
char m[3][20];
for(int i=0;i<3;i++)
{
cout<<"/n请输入第"<cin.getline(m[i],20);
}
cout<for(int j=0;j<3;j++)
cout<<"输出m["<
}
请输入第1个字符串:
kskr1
请输入第2个字符串:
kskr2
请输入第3个字符串:
kskr3
输出m[0]的值:kskr1
输出m[1]的值:kskr2
输出m[2]的值:kskr3
4、getline() // 接受一个字符串,可以接收空格并输出,需包含“#include”
#include
#include
using namespace std;
main ()
{
string str;
getline(cin,str);
cout<}
输入:jkljkljkl
输出:jkljkljkl
输入:jkl jfksldfj jklsjfl
输出:jkl jfksldfj jklsjfl
和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数
5、gets() // 接受一个字符串,可以接收空格并输出,需包含“#include”
#include
#include
using namespace std;
main ()
{
char m[20];
gets(m); //不能写成m=gets();
cout<}
输入:jkljkljkl
输出:jkljkljkl
输入:jkl jkl jkl
输出:jkl jkl jkl
类似cin.getline()里面的一个例子,gets()同样可以用在**数组里面:
#include
#include
using namespace std;
main ()
{
char m[3][20];
for(int i=0;i<3;i++)
{
cout<<"/n请输入第"<gets(m[i]);
}
cout<for(int j=0;j<3;j++)
cout<<"输出m["<
}
请输入第1个字符串:
kskr1
请输入第2个字符串:
kskr2
请输入第3个字符串:
kskr3
输出m[0]的值:kskr1
输出m[1]的值:kskr2
输出m[2]的值:kskr3
自我感觉gets()和cin.getline()的用法很类似,只不过cin.getline()多一个参数罢了;
这里顺带说明一下,对于本文中的这个kskr1,kskr2,kskr3 的例子,对于cin>>也可以适用,原因是这里输入的没有空格,如果输入了空格,比如“ks kr jkl[回车]”那么cin就会已经接收到3个字符串,“ks,kr,jkl”;再如“kskr 1[回车]kskr 2[回车]”,那么则接收“kskr,1,kskr”;这不是我们所要的结果!而cin.getline()和gets()因为可以接收空格,所以不会产生这个错误;
6、getchar() //接受一个字符,需包含“#include”
#include
#include
using namespace std;
main ()
{
char ch;
ch=getchar(); //不能写成getchar(ch);
cout<}
输入:jkljkljkl
输出:j
//getchar()是C语言的函数,C++也可以兼容,但是尽量不用或少用;
总结:
1.读入一行
gets(char a[]); //接受一行,遇回车结束
gets(m[i]) //可用于**数组中
cin.get(char a[],int 5,'/n') //将字符数组a的前5个字符读入,遇到换行符结束;比如:a bc12ds,将会读入4个字符 a bc,外加一个'/0';
// 一般第三个参数不写,默认为'/0'
eg:
#include
#include
using namespace std;
main ()
{
string str;
getline(cin,str);
cout<}
2.读入一个字符
getchar() //接受一个字符,需包含“#include”
char ch =getchar();
cin.get(char c) 或者 cin.get()
char ch=cin.get(); 或者cin.get(ch)
getline()和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数
cin.getline(char a[],int 5,'/n') //将字符数组a的前5个字符读入,遇换行符结束;如:a bc12ds,将会读入4个字符 a bc,外加一个'/0';
// 一般第三个参数不写,默认为'/0'
cin.getline(m[i],20) //可用于**数组中
getline() // 接受一个字符串,可以接收空格并输出,需包含“#include"
C++ 输入输出流是什么意思??
可以把流看作是一种数据的载体,通过它可以实现数据交换和传输。就像水流是一串水组成的 计算机中的数据流就是由一串数据组成的东西。