2016-12-07 18 views
-1
de programmation en C.

Comment récupérer une chaîne à partir d'un tableau

Je travaille sur une fonction qui utilise getline pour obtenir l'entrée de l'utilisateur. Si le premier mot d'une chaîne de texte est S, il appellera une fonction qui enregistrera un tableau 2D dans un document.

le nom du fichier sera ce que les types d'utilisateur après la S.

Donc, si l'utilisateur était de type S myfile.txt, la fonction enregistre le fichier en tant que myfile.txt. Je ne peux pas comprendre comment attraper une chaîne de l'aray qui sera le nom du fichier. Je ne pense pas que mon utilisateur des pointeurs est correct.

void copy_to_file(char** board, int num_rows, int num_cols, char* filename){ 

    FILE *fp; 
    fp = fopen(filename.txt, "w"); 
    int i =0; 
    int j = 0; 
    for (i = (num_rows - 1); i >= 0; --i) { 
    fprintf("%d ", i); 
    for (j = 0; j < num_cols; ++j) { 
    fprintf("%c ", board[i][j]); 
    } 
    fprintf("\n"); 
    } 
    fprintf(" "); 
    for (i = 0; i < num_cols; ++i) { 
    fprintf("%d ", i); 
    } 
    fprintf("\n"); 

    fclose(f); 

    }//end coppy to board 

    int main(int argc, char** argv) 

    { 
    char** board 
    do 
    { 
     printf("Enter your command: "); 
     fgets(command, 100, stdin); 

    if(command[1] == 's"){ 

    copy_to_file(char** board, int num_rows, int num_cols, char* filename) 

    } 

    }while(!(get_valid_input(command))); 
+2

'commande [1] == « s "'. Est-ce que votre programme même compilation? Je devine que ce ne est pas. Si tel est le cas, alors vous devriez demander à ce sujet en fournissant les messages d'erreur exacts – kaylum

+0

"une fonction qui utilise getline" Le code affiché n'appelle pas 'getline' à n'importe quel endroit.Veuillez prendre le temps de fournir les informations correctes – kaylum

+0

' fprintf' Le premier argument est 'FILE *' – BLUEPIXY

Répondre

0

exemple de code.

#include <stdio.h> 

int main(void){ 
    char commands[512] = "S myfile.txt\n"; 
    char command, filename[FILENAME_MAX+1]; 

    sscanf(commands, " %c %[^\n]", &command, filename); 
    printf("command:%c, filename:%s\n", command, filename); 
    return 0; 
}