作者JeremyKSKGA (J)
看板C_and_CPP
標題Re: [問題] 關於一個程式
時間Mon Mar 23 23:47:03 2009
我修改過我的程式碼了
中文判讀沒問題了
現在只剩下跳行了
而且最詭異的就是 我輸出的文字內容
只要貼到MSN上就會自動跳行 XD
#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-1]=array_in[lineDex];
array_out[lineLen-2-lineDex]=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-1);
Output.write("\n\0", 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)0x7e)
|| (ch2 >= (char)0xa1 && ch2 <= (char)0xfe)
){
bResult = true;
}
}
return bResult;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.191.1
1F:推 snowlike:丟進矩陣裡面不是要寫出來orz|| 03/24 00:00
2F:推 tsaiminghan:windows下的跳行好像是 \r\n? 03/24 00:00
3F:→ snowlike:你的array_out不是本來就有給換行字符沒辦法換是程式問題 03/24 00:05
4F:→ snowlike:想寫windows可以參考樓下^_^ 03/24 00:06
5F:→ JeremyKSKGA:唉呀 我作業已經交了 Orz 03/24 00:16
6F:→ snowlike:拍拍 03/24 00:23
7F:推 eterbless:我想說交作業時間是23:00吧... 03/24 01:48