2014-10-28 2 views
0

Для моего проекта я получаю имя файла от пользователя и отправляю его функции для создания фактического файла/открытия его, если он уже существует. Проблема, с которой я сталкиваюсь, заключается в том, что когда компилятор создает файл ... это буквально тот, файл. Как я могу указать тип файла после получения имени через командную строку?Задание расширения файла в C

от основной:

printf("Enter the name of the file in which you wish to create\nor if you know the name of an exisiting file, enter that file name:\n"); 
scanf(" %s", FNAME); 
File = FileOpen(FNAME); 

функция:

FILE *FileOpen(char* FNAME) { 
FILE* pFile; 
pFile = fopen(FNAME,"rb+"); 
if (!pFile) 
    pFile = fopen(FNAME,"wb+"); 
return pFile; 
+1

«Это буквально именно это, файл». В отличие от чего? Я не понимаю эту проблему. – ooga

+0

Что вы подразумеваете под «типом»? –

+0

из заявлений, которые вы предоставили, видно, что вы принимаете файл из инструкции scanf. в вопросе вы говорите, что имя файла принимается из командной строки. совершенно сбивает с толку. –

ответ

0

Вот что я в конечном итоге делает после некоторого копаться/помощь от друга.

sprintf(FNAME, "%s%s", FNAME, ".dat"); 

спасибо за все ответы

0

попробовать это:

Pfile = FOPEN ("путь \ FNAME.extension", "гь +");

здесь введите абсолютный путь к файлу, имя файла вместе с его расширением в пределах qotes.

Путь не требуется, если файл находится в одном и том же конвейере! ex- FILE * fp; fp = fopen ("file.txt", "r");

здесь file.txt находится в той же самой директиве, что и файл программы.

+0

#include #include INT основной() { FILE * FP; fp = fopen ("file.txt", "w +"); fprintf (fp, "% s% s% s% d", "We", "are", "in", 2014); fclose (fp); return (0); } // этот код создаст txt-файл с именем file.txt и будет содержать «Мы в 2014 году. –

+0

. С какими вопросами связан ваш ответ? Кажется, это объясняет, как открыть поток файлов. Напомним, что проблема была выше. Кроме того, пожалуйста, не включайте код в комментарии. Отредактируйте свой ответ и включите код в правильном формате. Если вы не знаете, как отформатировать ответ, другие помогут, я помогу , но, пожалуйста, прочитайте справку по ответам на вопросы. –

+0

Я думал, что задал довольно простой вопрос, но, думаю, не так. Я предполагаю, что в действительности все, что я пытался сделать, это получить строку от пользователя и добавить расширение до конца данной строки и передать это fopen() – Wacko90901

0

#include <stdio.h> #include <stdlib.h> int main() { FILE * fp;

fp = fopen ("file.txt", "w+");

fprintf(fp, "%s %s %s %d", "We", "are", "in", 2014);

fclose(fp);

return(0); }

//this code will create a txt file named file.txt and will contain "We are in 2014

Смежные вопросы