2011-12-02 123 views
2

我正在做一些C++教程,到目前爲止我非常善於處理它。但是,有一件事情讓我感到困惑,並被迫離開了我的知識,這讓我很頭疼。如何使用C++的命令行創建一個文件名?

如何使用在命令行上給出的名稱創建文件?

+1

這是個玩笑..? – Beginner

+0

哪個平臺?你可以使用提升? – FailedDev

+0

羅馬B.爲什麼我會開玩笑這件事?沒有任何意義。 –

回答

3

你問有關如何在命令行中得到一個字符串來命名要打開的文件?

#include <iostream> 
#include <cstdlib> 
#include <fstream> 

int main(int argc,char *argv[]) { 
    if(2>argc) { 
     std::cout << "you must enter a filename to write to\n"; 
     return EXIT_FAILURE; 
    } 
    std::ofstream fout(argv[1]); // open a file for output 
    if(!fout) { 
     std::cout << "error opening file \"" << argv[1] << "\"\n"; 
     return EXIT_FAILURE; 
    } 
    fout << "Hello, World!\n"; 
    if(!fout.good()) { 
     std::cout << "error writing to the file\n"; 
     return EXIT_FAILURE; 
    } 
    return EXIT_SUCCESS; 
} 
+0

非常好!謝謝。 :) –

-1

您需要解析命令行參數並將其中的一個用作文件的文件名。看到這樣的代碼:

#include <stdio.h> 

int main (int argc, char *argv[]) 
{ 
    if (argc != 2) /* argc should be 2 for correct execution */ 
    { 
     /* We print argv[0] assuming it is the program name */ 
     printf("usage: %s filename", argv[0]); 
    } 
    else 
    { 
     // We assume argv[1] is a filename to open 
     FILE *file = fopen(argv[1], "r"); 

     /* fopen returns 0, the NULL pointer, on failure */ 
     if (file == 0) 
     { 
      printf("Could not open file\n"); 
     } 
     else 
     { 
      int x; 
      /* read one character at a time from file, stopping at EOF, which 
       indicates the end of the file. Note that the idiom of "assign 
       to a variable, check the value" used below works because 
       the assignment statement evaluates to the value assigned. */ 
      while ((x = fgetc(file)) != EOF) 
      { 
       printf("%c", x); 
      } 
      fclose(file); 
     } 
    } 
} 

在這裏看到更多的細節:http://www.cprogramming.com/tutorial/c/lesson14.html

+0

非常有用。謝謝。 :) –

+0

對不起,但他明確要求C++代碼。 – slaphappy

+0

C是C++的子集;) –

相關問題