2016-12-07 4 views
-1

에서 프로그래밍 프로그래밍배열에서 문자열을 가져 오는 방법

나는 getline을 사용하여 사용자로부터 입력을받는 함수를 만들고 있습니다.

텍스트 문자열의 첫 번째 단어가 S이면 2D 배열을 문서로 저장하는 기능을 호출합니다.

파일의 이름은 사용자가 S의 MYFILE.TXT를 입력했다 경우 S.

후 사용자가 입력 그래서, 함수가 MYFILE.TXT로 파일을 저장합니다 무엇이든 될 것입니다. 파일 이름이 될 레이에서 문자열을 가져 오는 방법을 알아낼 수 없습니다. 내 포인터 사용자가 맞지 않다고 생각합니다.

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

당신의 프로그램도 컴파일합니까? 아닙니다. . – kaylum

+0

"getline을 사용하는 함수". 표시된 코드는 어디에서나'getline'을 호출하지 않습니다. 정확한 정보를 제공 할 시간이 필요합니다 – kaylum

+0

'fprintf' 첫 번째 인수는'FILE *'입니다. – BLUEPIXY

답변

0

샘플 코드

#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; 
} 
관련 문제