C++文件访问/输入和输出
C++ File accessing/ input and output
我在使用这个程序时遇到了相当困难(请参阅下面的代码)。它应该是:
-
创建一个由26个组件组成的数组,对字母表中的26个字母进行字母计数,并为行计数创建一个变量。
-
创建一个包含文本的ASCII(或文本)文件,该文件将用作我的程序的输入。
-
将该文件称为"textinput",然后将输出存储在名为"textoutput"的文件中。
有人能告诉我我做错了什么吗?我不断收到"找不到文件"的错误。
#include <iostream>
#include <cstdio>
#include <iomanip>
#include <cstdlib>
#include <fstream>
using namespace std;
int main()
{
int lineCount = 0;
int letterCount[26];
for(int i = 0; i < 26; i++)
letterCount[i] = 0;
ifstream infile;
infile.open("textinput.txt", ios::in);
if(!infile)
{
cerr<<"File does not exist."<<endl;
exit(1);
}
ofstream outfile;
outfile.open("textoutput.txt", ios::out|ios::binary);
if(!outfile)
{
cerr<<"File cannot be opened."<<endl;
exit(1);
}
char data[100];
outfile<<data;
while(infile>>data)
{
outfile<<data<<endl;
}
while(infile)
{
char ch1 = infile.get();
if(ch1 == 'n')
{
lineCount++;
continue;
}
int asciiNum = (int)ch1;
if(asciiNum > 96)
{
asciiNum = asciiNum - 97;
}
else
{
asciiNum = asciiNum - 65;
}
letterCount[asciiNum]++;
}
infile.close();
outfile.close();
system("PAUSE");
return 0;
}
有趣的是,程序中不可能出现"找不到文件"错误1所以,我要冒险,建议您需要限定可执行文件的路径!
比如说,你用之类的东西编译
gcc program1.cpp -o program1
要执行,必须使用
./program1
因为program1
不起作用。原因是,99%的确定性是,您当前的工作目录不在可执行文件的搜索路径中(您希望保持这种状态)。
除此之外,是的,请确保textinput.txt
存在于同一目录中。
1(程序中没有这样的错误消息。你应该知道:你已经编程了!)
ifstream
类用于从文件中读取,并且要从文件中进行读取,您必须首先创建它,而您尚未创建它,因此首先创建文件。
通过这样做:
ifstream infile;
infile.open("textinput.txt", ios::in);
您正试图从尚未创建的文件中读取,或者可能如其他答案或注释中所述,您的文件不在同一目录中。
您最好先使用ofstream
在文件上写入,然后使用ifstream
。
如果你有文件,你的代码能工作吗?如果它确实尝试删除ios::out
。如果我没有错的话,ios::out
是在你不想截断文件中的旧内容时使用的,但这意味着你已经有了它。
相关文章:
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- C++多个输入和输出
- 制定带有输入和输出C++的时间表
- 字符的输入/输出操作
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 在数组中输入 n 个整数的列表,并以类似于钟摆来回移动的方式排列它们. 输入-1 3 2 5 4,输出5 3 1 2 4
- C++ 中的矢量重复输出输入
- 类中的重载函数(Students())是输出输入的信息,但它不起作用
- 函数以相反的顺序输出输入问题,并改进算法以解释相等的数字
- 在输出输入文本时对齐输入的文本
- 将多个文件输出/输入到桌面
- 输出输入c++的最短方式
- 将Crypto++中自动种子PNRG的输出输入一个字符串
- 输出输入的拼接版本