C++ std::在内存位置c+处超出范围+;
编译器说无法打开my.exe进行写入。它在getline处中断(ifs,input)。我还发现了一些内存超出范围的错误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
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的问题。