【问题标题】:Having difficulty with reading files in C++在 C++ 中读取文件有困难
【发布时间】:2020-03-01 17:55:58
【问题描述】:

我正在尝试让程序读取 .txt 文件,但它返回不可读的信息。任何建议或帮助将不胜感激。

#include <iostream>
#include <string>
#include <fstream>

using namespace std;

int main() {

    fstream file;
    file.open("/Users/Arrakis/Downloads/Toppings.txt");
    string toppings;
    if (!file)
    {
        cout << "File opening error!" << endl;
    }

    getline(file, toppings);
    while (file) {
        cout << toppings << endl;
        getline(file, toppings);
    }
    file.close();
    return 0;
}

返回的数据是:

{\rtf1\ansi\ansicpg1252\cocoartf2511
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 
Helvetica;}
{\colortbl;\red255\green255\blue255
{\*\expandedcolortbl;;}\margl1440\margr1440\vieww10800\viewh8400
\viewkind0\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320
\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\
 partightenfactor0

\f0\fs24 \cf0 Pepperoni\
Ham\
Pineapple\
Veggies}

【问题讨论】:

  • 你确定Toppings.txt 是一个文本文件,并且不包含例如RTF 格式的内容?
  • 看起来您的输入文件是富文本格式(RTF 文件)。
  • @Wolf_dawg 更改文件扩展名不会更改文件内容。如果它是.rtf 文件,您需要一个能够读取.rtf 文件的库,例如QtlibRTF
  • 顺便说一句,如果您的文件无法打开,您的程序会显示一条消息,然后继续运行。显示消息后,您可能希望从mainreturn
  • 必须将其保存为纯文本。一种技术含量较低的方法是将富文本编辑器中的内容复制粘贴到 Visual Studio Code 之类的工具中,该工具将在常规文本文件中进行富文本格式设置。

标签: c++ file c++14 file-read


【解决方案1】:

需要重新格式化 .txt 文件,使其不包含 .rtf 元素。

【讨论】:

    猜你喜欢
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多