第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您好,請問使用C++怎么輸出流一個put函數(shù)問題?

您好,請問使用C++怎么輸出流一個put函數(shù)問題?

PHP C
莫回?zé)o 2021-11-30 11:03:49
#include"iostream"#include"fstream"using namespace std;void main(){int s[10], n;ofstream file("data.dat",ios::out | ios::binary);for (n = 0; n < 10; n++){s[n] = 1;for (int i = 1; i <= (n + 1); i++)s[n] *= i;file<<s[n] << endl; //此處換成file.put(s[n])<<endl就寫入了亂碼!}file.close();}
查看完整描述

2 回答

?
哈士奇WWW

TA貢獻1799條經(jīng)驗 獲得超6個贊

put是用來輸出單個字符的
write是用來輸出確定長度字符串的

查看完整回答
反對 回復(fù) 2021-12-05
?
溫溫醬

TA貢獻1752條經(jīng)驗 獲得超4個贊

可以把流看作是一種數(shù)據(jù)的載體,通過它可以實現(xiàn)數(shù)據(jù)交換和傳輸。就像水流是一串水組成的 計算機中的數(shù)據(jù)流就是由一串?dāng)?shù)據(jù)組成的東西。

C++的輸入輸出流及文件操作
1. C++保留C的輸入輸出單個字符的函數(shù)
(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() ——字符輸入函數(shù)
例程:
#include
using namespace std;
int main()
{
char c;
c=getchar();
putchar(c+32); //轉(zhuǎn)化為小寫字母,大小寫之間包括[ / ] ^ - 、6個字符,因此不加26加32。'A'=65
putchar('/n');
return 0;
}
也可用cout來輸出: cout<<(c=getchar()+32);
2. scanf()、printf()函數(shù)的輸入和輸出
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的成員函數(shù)put(c)
cin成員函數(shù)get()
(1) 不帶參數(shù)的
char c=cin.get(); //用cin的成員函數(shù)get()從鍵盤讀入一個字符到c中去
(2) 帶一個參數(shù)的
cin.get(ch); //從輸入的流中接受一個字符,并賦給字符變量ch
(3) 帶三個參數(shù)的
cin.get(字符數(shù)組,字符的個數(shù)n,終止字符)
例程:
#include
using namespace std;
int main()
{
char ch[20];
cout<<"in put a string:"<
cin.get(ch,10,'/n'); /*取得輸入流的前10-1=9個字符賦值給ch數(shù)組的前9個元素,并規(guī)定換行符為為輸入流的終止結(jié)束符*/
cout<
return 0;
}
如輸入:1 2 34567890 //按換行鍵終止流輸入
則輸出:1 2 34567 //只讀得前9個送入ch數(shù)組中
cin的成員函數(shù)getline() ——從輸入流中讀入一行字符
cin.getline(字符數(shù)組(或字符指針),字符的個數(shù)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數(shù)組或遇到'/'結(jié)束
cout<<"The second part is:"<
cin.getline(ch,20); //讀取19個字符到ch數(shù)組或遇到'/n'結(jié)束,遇到'/'仍作為字符讀入
cout<<"The third part is:"<
return 0;
}
istream類的其他的成員函數(shù)如:eof(),在輸入流中讀取數(shù)據(jù),如果到達末尾(遇到文件結(jié)束符),則eof()返回真,否則為假.
例程:
#include
using namespace std;
int main()
{
char c;
while(!cin.eof()) //若未遇到文件結(jié)束符
if((c=cin,get())!=' ') //檢查讀入的字符是否為空格字符
cout.put(c);
return 0;
}
4. 磁盤文件的打開和關(guān)閉
打開
ofstream outfile;
if(outfile.open("f1.data",ios::app)==0) // 打開
cout<<"打開失?。?quot;;
……………………
outfile.close(); //關(guān)閉
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低頭思故鄉(xiāng)/n";
out< return 0;
}
6. 讀文件到控制臺
#include
#include
#include
using namespace std;
int main()
{
ifstream infile("d://new//d.txt",ios::in); //定義輸入文件的流對象,以輸入方式打開磁盤文件d.txt,第二個參數(shù)可去
if(!infile)
{
cerr<<"打開失??!"< exit(1);
}
for(string str;getline(infile,str);) //逐行打開并逐行顯示,因此在循環(huán)中實現(xiàn)
cout< infile.close();
return 0;
}
或把 for(string str;getline(in,str);)
cout<
兩句改為 string str;
while(getline(in,str))
cout<
7. 文件復(fù)制
#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<<"文件復(fù)制成功!"<
in.close();
out.close();
return 0;
}
8. 自定義一個文件讀入的函數(shù) 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.關(guān)于文件讀寫的綜合應(yīng)用
#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'結(jié)束
if(c[i]>=65 && c[i]<=90||c[i]>=97 && c[i]<=122)
{
ofile.put(c[i]); //將字母存入磁盤文件d.txt
cout< }
cout< ofile.close();
}
//將"d.txt"中的字母轉(zhuǎn)化為大寫字母并存入"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)) //逐個讀入字符成功后執(zhí)行下面的語句
{
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++的字符或字符數(shù)組的讀入函數(shù)總結(jié)=====================
1、cin
1、cin.get()
2、cin.getline()
3、getline()
4、gets()
5、getchar()
1、cin>>
用法1:最基本,也是最常用的用法,輸入一個數(shù)字:
#include
using namespace std;
main ()
{
int a,b;
cin>>a>>b;
cout<}
輸入:2[回車]3[回車]
輸出:5
用法2:接受一個字符串,遇“空格”、“TAB”、“回車”都結(jié)束
#include
using namespace std;
main ()
{
char a[20];
cin>>a;
cout<}
輸入:jkljkljkl
輸出:jkljkljkl
輸入:jkljkl jkljkl //遇空格結(jié)束
輸出: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(字符數(shù)組名,接收字符數(shù)目)用來接收一行字符串,可以接收空格
#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()實際上有三個參數(shù),cin.getline(接受字符串的看哦那間m,接受個數(shù)5,結(jié)束字符)
//當(dāng)?shù)谌齻€參數(shù)省略時,系統(tǒng)默認為'/0'
//如果將例子中cin.getline()改為cin.getline(m,5,'a');當(dāng)輸入jlkjkljkl時輸出jklj,輸入jkaljkljkl時,輸出jk
當(dāng)用在多維數(shù)組中的時候,也可以用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流,是不一樣的兩個函數(shù)
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()同樣可以用在多維數(shù)組里面:
#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()多一個參數(shù)罷了;
這里順帶說明一下,對于本文中的這個kskr1,kskr2,kskr3 的例子,對于cin>>也可以適用,原因是這里輸入的沒有空格,如果輸入了空格,比如“ks kr jkl[回車]”那么cin就會已經(jīng)接收到3個字符串,“ks,kr,jkl”;再如“kskr 1[回車]kskr 2[回車]”,那么則接收“kskr,1,kskr”;這不是我們所要的結(jié)果!而cin.getline()和gets()因為可以接收空格,所以不會產(chǎn)生這個錯誤;
6、getchar() //接受一個字符,需包含“#include”
#include
#include
using namespace std;
main ()
{
char ch;
ch=getchar(); //不能寫成getchar(ch);
cout<}
輸入:jkljkljkl
輸出:j
//getchar()是C語言的函數(shù),C++也可以兼容,但是盡量不用或少用;
總結(jié):
1.讀入一行
gets(char a[]); //接受一行,遇回車結(jié)束
gets(m[i]) //可用于多維數(shù)組中
cin.get(char a[],int 5,'/n') //將字符數(shù)組a的前5個字符讀入,遇到換行符結(jié)束;比如:a bc12ds,將會讀入4個字符 a bc,外加一個'/0';
// 一般第三個參數(shù)不寫,默認為'/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流,是不一樣的兩個函數(shù)
cin.getline(char a[],int 5,'/n') //將字符數(shù)組a的前5個字符讀入,遇換行符結(jié)束;如:a bc12ds,將會讀入4個字符 a bc,外加一個'/0';
// 一般第三個參數(shù)不寫,默認為'/0'
cin.getline(m[i],20) //可用于多維數(shù)組中
getline() // 接受一個字符串,可以接收空格并輸出,需包含“#include"



查看完整回答
反對 回復(fù) 2021-12-05
  • 2 回答
  • 0 關(guān)注
  • 447 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號