Понимание обработки файлов в C - PullRequest
0 голосов
/ 22 декабря 2011

Как именно я беру данные из файла в C?

Как, например, в: скажем, я назначил указатель файла для конкретного файла и хочу выполнить определенные операции. Какой именно синтаксис для назначения файлового указателя Предположим, файл находится в C: \ Acads \ bin \ File.txt. В моем коде, когда я пытаюсь это

FILE *fp1;
fp1=("C:\Acads\bin\File.txt","r+");

В конечном итоге я получаю сообщение об ошибке.

UPDATE: Итак, вот мое главное сомнение.

Как именно я сообщаю компилятору, что мой файл находится по такому же пути. Я пытался сделать все, что вы, ребята, сказали мне, но безрезультатно.

Ответы [ 5 ]

2 голосов
/ 22 декабря 2011

Я думаю, что вы натолкнулись на опечатку: она должна сказать:

fp1=fopen(filename,"r+");

Также вы должны избегать каждого символа обратной косой черты \ с другой обратной косой чертой:

fp1=fopen("C:\\Acads\\bin\\File.txt","r+");

Этопотому что \ начинает escape-последовательность.Например: \n будет означать перевод строки.\\ расширен до простой обратной косой черты.

1 голос
/ 22 декабря 2011

Это должно дать вам обзор обработки файлов в C. Вы можете использовать fopen, чтобы открыть файл и использовать perror, чтобы увидетьесли что-то пошло не так.Что-то в этих строках:

FILE *fp;
fp= fopen("C:\\Acads\\bin\\File.txt","r+"); /* You have to escape \ in C as it is a special character*/
if ( fp == NULL)
{
  perror("fopen");
  /*Handle error*/
}
/* File operations */
fclose(fp);

Надеюсь, это поможет!

0 голосов
/ 22 декабря 2011

A указатель файла - это указатель на struct , содержащий определенную информацию о файле, например, где он находится, его размер и другие данные в зависимости от операционной системы и libc реализация.

Теперь дело в том, что вам не нужно беспокоиться о том, что на самом деле содержит эта структура. Вы просто знаете, что у вас может быть указатель на него, и что библиотечные функции знают, что с ним делать. Это дает замечательную особенность переносимости, означающую, что ваш код может работать без изменений даже в системах, которые имеют совершенно другой способ обработки файлов.

0 голосов
/ 22 декабря 2011

Вы должны открыть файл, прежде чем пытаться читать.Вот полный пример того, как открыть файл и прочитать последующие строки.

http://www.phanderson.com/files/file_read.html

0 голосов
/ 22 декабря 2011

Вот простой пример использования fopen

FILE *fp;
fp = fopen(path, "r+");

Взгляните на man fopen.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...