C_and_CPP 板


LINE

不好意思,这是作业Q3Q(被揍 我研究了好几天,版上有getline、字串...等好几十种关键字的文章我都看好几遍了, Google也估了几十种了 囧" 结果我还是写不出来OTL 我们教授要我们去把一个big-5的文字档读进程式,然後将每一行自己前後顺序反转後 逐行输出到文字档,不过文字档不是固定的,且内含中英文 我研究到後来才知道中文字串不能直接反转,所以得去判断读进去的是中文还是英数, 我主要是希望用阵列的方式去做,不是用内建的函式(有吗XD)去做反转,所以去查了 之後发现可以用判断16进位的方式去看是不是在范围内(0x80~0xfe) 我的想法是先将文字档一行一行读,先用getline读进去第一个阵列, 这边先遇到一个问题,一排句子结尾应该是 ......\n\0这样吗? 囧 所以说我用getline去读他会把\n丢掉,所以我读进去是 ......\0 这样 所以之後我使用strlen()取得的阵列内容大小是含着\0 的, 然後我用if和else if来判断他是不是中文字 我是先把第一个阵列从倒数第二个开始读,想说这样就不会读到\0 了 然後再开始倒着写入第二个阵列 假设我现在阵列一有读到内容: a b c 我 d e \0 (8个字元) 然後我开始从阵列一的倒数第二位 e开始读,然後放到阵列二的第一位,然後 阵列一的倒数第三位 d , 放到阵列二的第二位,然後 阵列一的倒数第四位 我的後面, 放到阵列二的第位,然後 将阵列一的倒数第五位, 我的前面放到阵列二的第三位, 以这样的方法一直读到阵列一的第一位,写完第二个阵列的第七个位元, 之後我自己将阵列二的第八位补上\0 之後再用.write()写入一整行,大小是八位元 请问这样有观念上的问题吗(一定有,因为我跑出来结果失败Q3Q)? 且这样做好像不会自己换行输出到档案,结果变成全部在同一行 ================================= #include <cstdlib> #include <iostream> #include <fstream> #include <cstring> using namespace std; int main(){ fstream Input, Output; char info[128]; char infore1[128]; Input.open("input.txt",ios::in|ios::binary); Output.open("output.txt",ios::out|ios::binary); //就是用这里读进一整行 while(Input.getline(info, 128, '\n')){ for(int i=0;i<strlen(info)-1;i++){ if((unsigned char)info[strlen(info)-2-i]>=0x80 && (unsigned char)info[strlen(info)-2-i]<=0xfe){ infore1[i+1]=info[strlen(info)-2-i]; infore1[i]=info[strlen(info)-3-i]; i++; } else{ infore1[i]=info[strlen(info)-2-i]; } } infore1[strlen(info)]='\0'; //补上\0 ,可是好像没影响 Output.write(infore1,strlen(info)); } Input.close(); Output.close(); return 0; } ============================================== 我是用code::block写的OTL 想请问前辈们,我哪边观念有问题(当然有 囧) --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.172.248.107
1F:推 Ebergies:如果你的 "abc我de" 是对的, 测一下 "abc你de" 看看 03/22 09:17
2F:→ grantchiue:不行,我都没办法正常输出 03/22 09:43
3F:推 joefaq:swap要一个temp 03/22 11:09
4F:→ grantchiue:可是我是使用两个阵列,不是一个阵列自己交换,这样是 03/22 11:53
5F:→ grantchiue:不是就不用使用一个temp 03/22 11:53







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP