[問題] 關於一個程式
我要設計一個程式
在讀取input檔時能輸出的output檔
是幾行文字反過來寫的
譬如:
input.txt檔的文字內容為
Hello everybody!!
我是Jeremy
請大家多多指教^^
要使output.txt內容為
!!ydobyreve olleH
ymereJ是我
^^教指多多家大請
我寫的程式碼如下
#include <cstdlib>
#include <iostream>
#include <fstream>
#define LINE_LENGTH 64
using namespace std;
bool IsChinese(char ch1, char ch2);
int main(int argc, char *argv[]){
bool bChinese = false;
char array_in[LINE_LENGTH];
char array_out[LINE_LENGTH];
int lineDex;
int lineLen;
char chinese[3];
fstream Input, Output;
Input.open("input.txt", ios::in|ios::binary);
Output.open("output.txt", ios::out|ios::binary);
while(!Input.eof()){
Input.getline(array_in, LINE_LENGTH);
// cout<<array_in<<endl;
lineDex =0;
lineLen = strlen(array_in);
//cout<<lineLen<<endl;
array_out[lineLen-1]='\n';
//cout<<array_in<<endl;
while(lineDex<lineLen-1){
bChinese = IsChinese(array_in[lineDex], array_in[lineDex+1]);
if(bChinese==true){
array_out[lineLen-2-lineDex]=array_in[lineDex];
array_out[lineLen-2-lineDex+1]=array_in[lineDex+1];
lineDex += 2;
//chinese[0] = array_in[lineDex];
//chinese[1] = array_in[lineDex+1];
//chinese[2] = '\0';
//cout<<"chinese"<<chinese<<endl;
}else{
array_out[lineLen-2-lineDex]=array_in[lineDex];
lineDex++;
}
}
cout<<array_out;
Output.write(array_out, lineLen);
Output.write("\n", 1);
}
Input.close();
Output.close();
system("PAUSE");
return EXIT_SUCCESS;
}
bool IsChinese(char ch1, char ch2){
bool bResult = false;
if(ch1 >= (char)0xa1 && ch1 <= (char)0xf9){
if(
(ch2 >= (char)0x40 && ch2 <= (char)0x7f)
|| (ch2 >= (char)0xa1 && ch2 <= (char)0xfe)
){
bResult = true;
}
}
return bResult;
}
可是我執行的結果卻沒有我想要的輸出結果
請問我程式碼該如何修改呢??
拜託了!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.191.1
→
03/23 09:24, , 1F
03/23 09:24, 1F
推
03/23 10:03, , 2F
03/23 10:03, 2F
推
03/23 13:50, , 3F
03/23 13:50, 3F
→
03/23 16:29, , 4F
03/23 16:29, 4F
→
03/23 16:29, , 5F
03/23 16:29, 5F
→
03/23 20:13, , 6F
03/23 20:13, 6F
→
03/23 21:42, , 7F
03/23 21:42, 7F
→
03/23 22:27, , 8F
03/23 22:27, 8F
→
03/23 22:30, , 9F
03/23 22:30, 9F
推
03/23 23:14, , 10F
03/23 23:14, 10F
討論串 (同標題文章)