【ifstream】关于C 中ifstreamin的使用//f0501.cpp//向量参数...
答案:2 悬赏:20 手机版
解决时间 2021-02-14 18:28
- 提问者网友:泪痣哥哥
- 2021-02-14 03:47
【ifstream】关于C 中ifstreamin的使用//f0501.cpp//向量参数...
最佳答案
- 五星知识达人网友:平生事
- 2021-02-14 04:49
【答案】 〉in是自定义的吧?可以定义为in,也可以定义为cin等
--是的.
〉ifstream in(abc.in)括号里的语句可以打开哪些文件呢?包括数组、结构体吗?
--最好只用它来读含有文字的文件.倒不是说二进制文件不能用它读,而是因为ifstream本意就是为了读取字符设计的,用它来读二进制文件再作转换反而低效率.你说的数组、结构体如果是写在二进制文件里面的,最好别.
〉in>>n;这一句作用是什么?
-- 把文件最开始的部分作为整数读出来,写入整数n.
〉.size()是确定向量元素个数(包括数组吗?)
--是的.
〉如果前面in>>n;得到的是向量元素个数,那 m.size()-n-1 岂不是 -1?
注意这个语句是在一个大循环里面:
for(string s; n-- && getline(in,s); )
n是在不断递减的,每次减一.所以m.size()-n-1在这个循环里不停地增加,从0到m.size()-1. 追问: 从程序来看in>>n;这句的作用是得到向量的元素个数,之前答案网知道里也确有回答说“n是向量元素个数”,我想不明白的是从文件中读入第1个数据又是怎么确定向量元素个数的?为什么把从文件中读入的第1个数据作为向量元素的个数?。。。还是我理解错了? 追答: 你的理解是正确的,第一个数据确实就是向量元素个数。但是你要注意这里的m是个二维向量,它的每个元素都是另一个向量。所以这里应该这么理解——n是m的行数。 这个文件在存储时一定是遵循了某种格式的。从代码可以看出来,大概是这样——第1行,总行数n;第2到第n+1行,每一行里面都有若干数据,将分别读入m[0]到m[n-1]里面。
--是的.
〉ifstream in(abc.in)括号里的语句可以打开哪些文件呢?包括数组、结构体吗?
--最好只用它来读含有文字的文件.倒不是说二进制文件不能用它读,而是因为ifstream本意就是为了读取字符设计的,用它来读二进制文件再作转换反而低效率.你说的数组、结构体如果是写在二进制文件里面的,最好别.
〉in>>n;这一句作用是什么?
-- 把文件最开始的部分作为整数读出来,写入整数n.
〉.size()是确定向量元素个数(包括数组吗?)
--是的.
〉如果前面in>>n;得到的是向量元素个数,那 m.size()-n-1 岂不是 -1?
注意这个语句是在一个大循环里面:
for(string s; n-- && getline(in,s); )
n是在不断递减的,每次减一.所以m.size()-n-1在这个循环里不停地增加,从0到m.size()-1. 追问: 从程序来看in>>n;这句的作用是得到向量的元素个数,之前答案网知道里也确有回答说“n是向量元素个数”,我想不明白的是从文件中读入第1个数据又是怎么确定向量元素个数的?为什么把从文件中读入的第1个数据作为向量元素的个数?。。。还是我理解错了? 追答: 你的理解是正确的,第一个数据确实就是向量元素个数。但是你要注意这里的m是个二维向量,它的每个元素都是另一个向量。所以这里应该这么理解——n是m的行数。 这个文件在存储时一定是遵循了某种格式的。从代码可以看出来,大概是这样——第1行,总行数n;第2到第n+1行,每一行里面都有若干数据,将分别读入m[0]到m[n-1]里面。
全部回答
- 1楼网友:神的生死簿
- 2021-02-14 05:33
这个答案应该是对的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯