【发布时间】: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 文件)。
-
顺便说一句,如果您的文件无法打开,您的程序会显示一条消息,然后继续运行。显示消息后,您可能希望从
main到return。 -
您必须将其保存为纯文本。一种技术含量较低的方法是将富文本编辑器中的内容复制粘贴到 Visual Studio Code 之类的工具中,该工具将在常规文本文件中进行富文本格式设置。