弱智问题,可是教材上语焉不详,没办法了
就是在程序读入文本文件的时候,怎样实现类似于VC中的注释功能?
具体说,就是:
若在一行的开头读到 “//”,则忽略该行,继续读下一行;
若在一行的中间读到“//”,则忽略“//”后面的内容,继续读下一行;
应该是要用到 ifstream::get 和 ifstream::getline, 可是我试过多次却不能调试成功,头痛啊。
请高手帮忙,写点简单的sample code 给我参考一下。
问题点数:100、回复次数:10Top
1 楼rucil(电气工程师广广)回复于 2002-12-15 23:25:12 得分 0
up.
这么简单的问题,送分的啊!!!Top
2 楼ToUpdate(老六)回复于 2002-12-16 00:05:24 得分 0
UPTop
3 楼standlove(阿基米德)回复于 2002-12-16 00:22:15 得分 100
不知道符不符合你的要求?
int main()
{
const int bufSize = 1024;
char buf[bufSize];
while ( cin.getline(buf, sizeof(buf) )) {
if (strlen(buf) < 2) {
// do something
cout << buf << endl;
continue;
}
for (int i = 0; i < strlen(buf); ++i) {
if (buf[i] == '/' && buf[i+1] == '/') {
// text ignored
break;
}
else {
// do something
cout << buf[i];
}
}
cout << endl;
}
return 0;
}Top
4 楼rucil(电气工程师广广)回复于 2002-12-16 01:21:49 得分 0
standlove,非常感谢你的回复.
作为一个初学者,我对输入输出流类库尤其头痛。你写的程序有些地方我还看不太懂,劳烦你为我再作一点讲解好吗?
while ( cin.getline(buf, sizeof(buf) )) { } 作用是把每一行读入到buf数组吗?每一行里面的空格是不是也读进去了?
这个循环体的结束条件是什么呢?
Top
5 楼sucker(【^_^】)回复于 2002-12-16 02:09:39 得分 0
只要读进来了,什么都好说。Top
6 楼xuejiayue1105(xjy)回复于 2002-12-16 04:54:30 得分 0
什么 找一本入门书看看不就行了
//
和/*....*/
都可以做注释的
啊
至于函数吗,卖一本书如函数大全之类的
查查比上网问好多了Top
7 楼zhanghk(lion)回复于 2002-12-16 08:59:38 得分 0
up,接分,算法不难,但要是不知道用什么函数,自己查吧Top
8 楼rucil(电气工程师广广)回复于 2002-12-16 23:33:30 得分 0
TO 自由的飞:
"//和/*....*/都可以做注释的 "是编译器的功能撒!!而我是要在自己程序里实现这一功能
你的回答完全不切题
to zhanghk(lion):
我已经说的很明白了,我知道用什么函数,但是在我的程序中不能调试通过。这是两回事情。
所以两位不能得分,抱歉
Top
9 楼rucil(电气工程师广广)回复于 2002-12-18 00:14:43 得分 0
再up一下
谁有兴趣看看Top
10 楼earthharp(我老子是土匪)回复于 2002-12-18 00:58:45 得分 0
请参看standlove(阿基米德)的实现。
稍微修改就可以从文件往外读。Top




