هل يمكن أن يكون متغير ifstream متغير عالمي؟
سؤال
// stream from file.
ifstream file;
int main (int argc, char * argv[]) {
// get argument passed from command line
// This is file name
if (argc != 2 ) {
cout << "use: ./executable <filename>";
}else {
//cout << "You are using filename: " << argv[1];
// start the file stream
file (argv[1]);
}
لماذا هل هناك أي سبب file(argv[1])
سيكون إعطاء خطأ؟ هل يمكنني الحصول على ifstream متغير عالمي؟
المحلول
أنت تحاول الاتصال ifstream
'س ()
المشغل (الذي غير موجود)، عندما يجب أن تستخدم file.open(argv[1])
.
إلى جانب ذلك، لا يوجد شيء غير قانوني حول وجود عالمي ifstream
.
نصائح أخرى
يمكنك الحصول على ifstream كمتغير عالمي (سواء كان هذا أسلوبا جيدا هو سؤال مختلف).
يبدو أن المشكلة هي أنك تحاول استخدام المنشئ: file(argv[1])
سيتم بالفعل إنشاء المتغير العالمي (باستخدام المنشئ الافتراضي) في هذه المرحلة، وسوف تحتاج بدلا من ذلك إلى استخدام open
طريقة.
file.open( argv[1] );
لا تنتمي إلى StackOverflow