C++ 不使用数组从文件中分别读取各城市名称及对应数值的方法
实现逻辑
你给出的txt文件是固定格式:单行长名称的城市独占一行,下一行紧跟4个浮点数值,利用C++标准输入输出流>>运算符默认跳过所有空白字符(空格、换行、制表符都属于空白字符)的特性,不需要特意拆分读取行,也不需要用到数组,直接按顺序读取城市名和4个独立的浮点变量即可。
完整可运行代码
#include <iostream> #include <fstream> #include <string> int main() { // 此处替换为你的txt文件实际存储路径 std::ifstream infile("city_data.txt"); if (!infile.is_open()) { std::cerr << "文件打开失败,请检查路径是否正确" << std::endl; return 1; } std::string city; double v1, v2, v3, v4; // 循环读取每组数据,读到文件尾或格式错误时自动终止 while (infile >> city >> v1 >> v2 >> v3 >> v4) { // 此处可替换为你自己的业务处理逻辑,以下为打印示例 std::cout << "城市名称:" << city << std::endl; std::cout << "对应数值:" << v1 << "、" << v2 << "、" << v3 << "、" << v4 << std::endl; } infile.close(); return 0; }
说明
- 该方案完全不使用数组,4个数值用独立的double变量存储即可,满足你的要求。
- 不需要手动处理换行符,
>>运算符会自动跳过城市名和数值之间的换行,也会跳过数值之间的空格,适配你给出的文件结构。 - 如果后续每个城市对应的数值个数有变动,调整声明的变量数量和读取逻辑即可。
内容的提问来源于stack exchange,提问作者Ron
相关产品推荐
相关产品推荐

