Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ std::在内存位置c+处超出范围+;_C++_Visual Studio 2013 - Fatal编程技术网

C++ std::在内存位置c+处超出范围+;

C++ std::在内存位置c+处超出范围+;,c++,visual-studio-2013,C++,Visual Studio 2013,编译器说无法打开my.exe进行写入。它在getline处中断(ifs,input)。我还发现了一些内存超出范围的错误 getline(ifs, input); std::string dept = input.substr(1, 2); std::string sku = input.substr(3, 7); 我已经读了好几页关于如何做到这一点的书,我觉得这应该是对的。任何帮助都将不胜感激 #include"stdlib.h" #include <fstream> #inclu

编译器说无法打开my.exe进行写入。它在getline处中断(ifs,input)。我还发现了一些内存超出范围的错误

getline(ifs, input);
std::string dept = input.substr(1, 2);
std::string sku = input.substr(3, 7);
我已经读了好几页关于如何做到这一点的书,我觉得这应该是对的。任何帮助都将不胜感激

#include"stdlib.h"
#include <fstream>
#include <iostream>
#include <string>

void createDAT(){
    std::ifstream ifs("C:/Users/AndrewSpiteri/Documents/Programming/C++/C++ Notes/INPUT.DAT");
    std::string input;
    ifs.ignore(INT_MAX, '\n');
    getline(ifs, input);
    std::string dept = input.substr(1, 2);
    std::string sku = input.substr(3, 7);
    std::string qty = input.substr(15, 3);
    std::string fill = "QTY";
    std::ofstream ofs;
    ofs.open("C:/Users/AndrewSpiteri/Documents/Programming/C++/C++ Notes/OUTPUT.DAT");

    ofs << sku << dept << fill << qty;
    ifs.close();
    ofs.close();
}
int main(){
    createDAT();
    system("PAUSE");
}
#包括“stdlib.h”
#包括
#包括
#包括
void createDAT(){
std::ifstream ifs(“C:/Users/AndrewSpiteri/Documents/Programming/C++/C++Notes/INPUT.DAT”);
std::字符串输入;
如果忽略(INT_MAX,“\n”);
getline(ifs,输入);
std::string dept=input.substr(1,2);
std::stringsku=input.substr(3,7);
std::string qty=input.substr(15,3);
std::string fill=“数量”;
std::ofs流;
open(“C:/Users/AndrewSpiteri/Documents/Programming/C++/C++/Notes/OUTPUT.DAT”);

ofs“exe无法打开进行写入”可能意味着该程序仍在从上次运行时开始运行。请关闭它,然后再试一次。我已经尝试过了。它现在没有运行,因为我关闭并重新打开了IDE并关闭了控制台。但是,我仍然在内存位置获得了TD::超出了范围。输入的第一行是什么。DAT?关于主题的问题是这样的吗?@immibis Y嗯,我关闭了控制台后,试图再次建立它,但它给了我同样的不能写入到.exe的问题。