#include<iostream>
#include<fstream>
using namespace std;
int main() {
fstream outfile("98.txt", ios::out);
if (!outfile.is_open()) {
cout << "以寫方式打開檔案失敗" << endl;
return 0;
}
char ch[20];
while (1) {
cin.getline(ch, 20);
for (int i = 0; i < strlen(ch); i++) {
if (ch[i] >= 'a'&&ch[i] <= 'z')
ch[i] -= 32;
}
outfile.write((char*)&ch, strlen(ch));
if (ch[strlen(ch)-1] == '!')
break;
}
outfile.close();
fstream infile("98.txt", ios::in);
if (!infile.is_open()) {
cout << "以讀方式打開檔案失敗" << endl;
return 0;
}
infile.seekp(-1, ios::end);
while (infile.read((char*)&ch, strlen(ch))) {
cout << ch;
}
cout<<endl;
infile.close();
return 0;
}
這題是輸出一個字串 以!結束,要把字串內所有字符全都變成大寫的 然后輸出到檔案中
我輸入q3refsd!
輸出Q3REFSD!
但是我不想要最后的感嘆號
我就想把輸出流的指標定義在最后一位字符的前面,也就是輸出到!之前的一個字符
infile.seekp(-1, ios::end);這句代碼我知道有問題
那么咋寫
uj5u.com熱心網友回復:
用seek函式看一下感嘆號,如果是!就跳出回圈試試uj5u.com熱心網友回復:
outfile.write((char*)&ch, strlen(ch));if (ch[strlen(ch)-1] == '!')
break;
這兩句換一下位置。
if (ch[strlen(ch)-1] == '!')
break;
outfile.write((char*)&ch, strlen(ch));
uj5u.com熱心網友回復:
交換了之后輸出是空的。。。。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/95871.html
標籤:C++ 語言
上一篇:矩陣相乘&&判斷輸入格式
