第二次檢查的時候,發現妳的閱讀還是有些問題。我把它改成了這樣:
# include & ltiostream & gt
# include & ltfstream & gt
# include & ltcstring & gt//查找字符串的長度
使用命名空間std
int main()
{
ofstream輸出;
output . open(" output . txt ");//創建新的output.txt
char a[50],b[50];
cout & lt& lt請輸入要保存在計算機上的字符串,並以“#”結尾
CIN & gt;& gtb;//處理前直接讀取B,避免壹個壹個讀取。
b[strlen(b)-1]= ' \ 0 ';//strlen是包含在中的函數
輸出& lt& ltb;
cout & lt& lt"您輸入的字符串:" "
output . close();//我之前寫的程序裏沒有註意到這壹點。我想關閉文件。關閉文件由fstream對象函數close()表示。
}
從output.txt中讀取需要壹個C++ ifstream類。它專門用於從文件中讀取數據。它的用法是:if stream in(" XXX . txt ");這裏是壹個標識符,可以是任何合法的名稱,xxx.txt是文件名。這樣,我們就可以用這個對象來完成妳的任務。第二次復查後,我的程序簡化了許多。
ifstream in(" output . txt ");
在& gt& gta;
for(int I = 0;我& ltstrlen(a);i++ ) {
if(a[I]& gt;= ' a ' & amp& ampa[I]& lt;= ' z ')cout & lt;& lt靜態_強制轉換& ltchar & gt(a[I]-32);//如果是小寫就轉換。在妳的另壹個問題中,有網友指出這樣的轉換會造成混亂。靜態_強制轉換& lttype & gt(壹)就是把A轉換成type,所以我建議妳用這種格式,這樣不容易混淆。
else cout & lt& lta[I];
}
因為文件已經在for循環中被壹個字壹個字地讀取、轉換和輸出,所以這裏不需要做任何事情。整個文檔如下:
//更改來自文件. cpp
# include & ltiostream & gt
# include & ltfstream & gt
# include & ltcstring & gt
使用命名空間std
int main()
{
ofstream輸出;
output . open(" output . txt ");輸出. txt
char a[50],b[50];
cout & lt& lt請輸入要保存在計算機上的字符串,並以“#”結尾
CIN & gt;& gtb;
b[strlen(b)-1]= ' \ 0 ';
輸出& lt& ltb;
cout & lt& lt"您輸入的字符串:" "
output . close();
ifstream in(" g:/output . txt ");
在& gt& gta;
for(int I = 0;我& ltstrlen(a);i++ ) {
if(a[I]& gt;= ' a ' & amp& ampa[I]& lt;= ' z ')cout & lt;& lt靜態_強制轉換& ltchar & gt(a[I]-32);
else cout & lt& lta[I];
}
返回0;
}