मेरे प्रोग्राम को ऐसी फ़ाइल का उपयोग करने के लिए मुझे क्या करना है जिसे ड्रैग किया गया है और पैरामीटर के रूप में अपने आइकन पर गिरा दिया गया है?* .exe पर फ़ाइल खींचने और इसे पैरामीटर के रूप में प्राप्त करने में सक्षम कैसे करें?
मेरे वर्तमान main
विधि इस प्रकार है:
int main(int argc, char* argv[])
{
if (argc != 2) {
cout << "ERROR: Wrong amount of arguments!" << endl;
cout << "\n" << "Programm closed...\n\n" << endl;
exit(1);
return 0;
}
Converter a(argv[1]);
// ...
cout << "\n" << "Programm finished...\n\n" << endl;
// cin.ignore();
return 0;
}
क्या मैं सच में ऐसा करने में सक्षम होना चाहते हैं 10 (या तो) फ़ाइलों का चयन है, EXE पर उन्हें छोड़ देते हैं और उनके भीतर से की प्रक्रिया मेरा आवेदन।
संपादित करें:
incomming पैरामीटर, cunstructor में निर्माण फ़ाइल नाम के रूप में प्रयोग किया जाता है।
Converter::Converter(char* file) {
// string filename is a global variable
filename = file;
myfile.open(filename.c_str(), ios_base::in);
}
विधि जहां textfile पढ़ा जाता है:
string Converter::readTextFile() {
char c;
string txt = "";
if (myfile.is_open()) {
while (!myfile.eof()) {
myfile.get(c);
txt += c;
}
} else {
error("ERROR: can't open file:", filename.c_str());
}
return txt;
}
EDIT2: नष्ट कर दिया
अद्यतन:
मैं इस मुद्दे पर फिर से मिल गया।
वास्तविक Main
विधि:
// File path as argument
पूर्णांक मुख्य (int argc, char * argv []) { अगर (argc < 2) { अदालत < < "त्रुटि:! तर्कों की गलत राशि दे दो कम से कम एक तर्क ... \ n " < < endl; cout < < "\ n" < < "प्रोग्राम बंद ... \ n \ n" < < endl; cin.ignore(); बाहर निकलें (1); वापसी 0; }
vector<string> files;
for (int g = 1; g < argc; g++) {
string s = argv[g];
string filename = "";
int pos = s.find_last_of("\\", s.size());
if (pos != -1) {
filename = s.substr(pos + 1);
cout << "argv[1] " << argv[1] << endl;
cout << "\n filename: " << filename << "\n pos: " << pos << endl;
files.push_back(filename);
}
files.push_back(s);
}
for (unsigned int k = 0; k < files.size(); k++)
{
cout << "files.at(" << k << "): " << files.at(k).c_str() << endl;
Converter a(files.at(k).c_str());
a.getATCommandsFromCSV();
}
cout << "\n" << "Programm finished...\n\n" << endl;
cin.ignore();
return 0;
}
असल कंसोल विंडो शायद 0.5 सेकंड के लिए apears और फिर से बंद कर देता है।
यह मेरे किसी भी cin.ignore();
पर रोक नहीं सकता है शायद यह वहां नहीं मिलता है?
क्या कोई मदद कर सकता है?
@Joey तुम मुझे फिर से मदद कर सकते हैं? – Beasly
नीचे मेरा उत्तर देखें और संबंधित किसी भी प्रश्न पूछने के लिए स्वतंत्र महसूस करें ... –