添加输出文件后C++代码无法正确编译
C++ code doesn't compile correctly after adding output file
我已经完成了大部分作业,这需要使用到目前为止我已正确启动并运行的三个函数。问题是当我添加相应的代码以输出到文件时,最后一个函数不返回值,并且我要输出到文件的值没有写入文件。此外,该过程以返回 -1 结束。请查看下面的代码,告诉我我做错了什么。
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
string* returnGreetings() {
int const SIZE = 50000;
string message;
string* greetings = new string[SIZE];
for (int i = 0; i < SIZE; i++)
{
if (i < 12500)
{
message = "Hi";
greetings[i] = message;
}
else if (i >= 12500 && i < 25000)
{
message = "Hey";
greetings[i] = message;
}
else if (i >= 25000 && i < 37500)
{
message = "Hello";
greetings[i] = message;
}
else if (i >= 37500)
{
message = "What's up";
greetings[i] = message;
}
}
return greetings;
}
vector<string> returnVectorGreetings()
{
string message;
vector <string> greetings;
for (int i = 0; i < 50000; i++)
{
if (i < 12500)
{
message = "Hi";
greetings.push_back(message);
}
else if (i >= 12500 && i < 25000)
{
message = "Hey";
greetings.push_back(message);
}
else if (i >= 25000 && i < 37500)
{
message = "Hello";
greetings.push_back(message);
}
else if (i >= 37500)
{
message = "What's up";
greetings.push_back(message);
}
}
return greetings;
}
int addTen(int *numberAddress)
{
return *numberAddress + 10;
}
int main()
{
int *numberAddress;
string* address = returnGreetings();
cout << address;
string *a = returnGreetings();
for (int i = 0; i < 50000; i++) cout << a[i] << endl;
vector<string> m = returnVectorGreetings();
for (int i = 0; i < 50000; i++) cout << m[i] << endl;
cout << "Please enter a number: ";
cin >> *numberAddress;
cout << "The number plus 10 is: " << addTen(numberAddress) << endl;
ofstream outfile;
outfile.open("output.txt");
outfile << address;
outfile.close();
return 0;
}
只需使用这个 int *数字地址 = 新 int;
而不是 整数 *数字地址;
在使用指针之前,需要为指针分配内存。
问题出在numberAddress
上。 它未初始化。
当您尝试将其与 cin 一起使用并将其传递给 addTen()
时,您的程序可能正在访问无效内存并崩溃。
尝试初始化它以指向 int 变量,如下所示:
int naValue;
int *numberAddress = &naValue; // initialize numberAddress
相关文章:
- 在Linux for Windows上编译C++代码时出错
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在程序中编写脚本来编写和编译代码
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 在macos上编译代码的未解析符号
- 使用个人C++库编译代码时,与头文件一起使用时会中断
- 使用指针编译代码后,.cpp文件将变为随机字符
- VS Express 无法正确编译代码(?
- 如何在Ubuntu中使用Visual Studio代码编译C++代码
- 使用 Android NDK 使用 clang++ 编译C++代码时对"_Unwind_Resume"的未定义引用
- 无法使用两个包装不同下一层的ssl_stream编译代码
- 编译代码时"[Warning] extra tokens at end of"
- 无法编译代码,因为它已在 C++11 中弃用
- 如何在 Azure 应用服务中使用 cl.exe 编译 C++ 代码并生成可执行文件
- 如何调试编译 c++ 代码的 bazel?
- 为什么在使用转换构造函数编译代码时需要 const 复制构造函数?
- 编译 C++ 代码后尺寸较大
- 使用用 C++ 和 DDS 编写的 CMAKE 编译代码
- 编译代码时如何不制作二进制文件?
- 如何使用所有其他文件信息来编译代码,例如HAAR级联训练的权重的XML文件