Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/10: Рейтинг темы: голосов - 10, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 10.11.2008
Сообщений: 26
1

Как создавать, записывать в файл

01.12.2008, 22:09. Показов 2098. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер! Подскажите пожалуйста, как создавать, записывать в файл, ввод имён файлов с клавиатуры, читение данных из файла. Если можно с примерами.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2008, 22:09
Ответы с готовыми решениями:

Как создавать, записывать, удалять, выводить элементы списка
Здраствуйте я прошу вас помочь разобраться со списками(односвязными LIFO, FIFO), как создавать,...

При каждом запуске хранимой процедуры создавать временную таблицу и в нее записывать информацию
Мне нужно при каждом запуске ХП создавать временную таблицу, что-то в нее записать, а потом, по...

Как читать и записывать файл
Записал в файл миллион строк (числа от 1 до миллиона), построчное чтение при указании конкретной...

Как записывать текст в файл?
Необходима программа, которая будет считывать информацию из текста, но(!) есть нюанс. Текст в файле...

16
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
01.12.2008, 22:52 2
cplusplus.com
1
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
02.12.2008, 08:22 3
Берешь хорошую книгу по С++ и смотришь, там всё это есть.
0
0 / 0 / 0
Регистрация: 10.11.2008
Сообщений: 26
02.12.2008, 16:00  [ТС] 4
Подскажите, где ошибка?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>;
#include <conio.h>;
 
void main()
{
    FILE *fo;
    fo=fopen("c:\\tmp\\test.txt","wt");
    /*if ((fo=fopen("c:\\tmp\\test.txt","wt"))==0)
    {
        printf("Error");
    }*/
    fprintf(fo,"Hello World");
    fclose(fo);
    getch();
}
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
02.12.2008, 16:07 5
На фиг ты проверку закоментировал? Кстати, она у тебя неправильная.
Код
	if(fo == NULL)
	{
		printf("error opening");
		getch();
		return;
	}
Это во-первых.
А во-вторых, откеуда мне знать, почему у тебя ошибка. Может, директория tmp не создана вообще, может, прав нет, может файл открыт не shared. Дальше перечислять не буду.
0
0 / 0 / 0
Регистрация: 10.11.2008
Сообщений: 26
02.12.2008, 16:08  [ТС] 6
Приведи пример создания файла и записи в него какой-то информации!
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
02.12.2008, 16:12 7
Ты его уже написал выше.

P. S. писать такие простые примеры самому мне лень.
0
296 / 56 / 5
Регистрация: 22.05.2008
Сообщений: 788
02.12.2008, 16:35 8
Не устану повторять ссылку http://www.cplusplus.com/refer... m/fstream/
1
0 / 0 / 0
Регистрация: 10.11.2008
Сообщений: 26
02.12.2008, 16:39  [ТС] 9
У меня всё время вот эту ошибку пишет. http://xmages.net/out.php/i57372_0000000000000.jpg
0
296 / 56 / 5
Регистрация: 22.05.2008
Сообщений: 788
02.12.2008, 17:20 10
Причем тут файлы? У тебя просто несколько ф-ций main.
1
0 / 0 / 0
Регистрация: 10.11.2008
Сообщений: 26
02.12.2008, 18:31  [ТС] 11
Ты прав!
Подскажи как ввести имя файла с клавиатуры, а то что-то никак не получается.
0
296 / 56 / 5
Регистрация: 22.05.2008
Сообщений: 788
02.12.2008, 18:57 12
Самый простой способ -
C++
1
2
char filename[256];
std::cin.getline(filename, 255);
Но тут налагается ограничение, как видишь. Но обычно его не превышают.
1
0 / 0 / 0
Регистрация: 10.11.2008
Сообщений: 26
02.12.2008, 19:07  [ТС] 13
А елси через указатели, а то я так что-то не понимаю.

Добавлено через 7 минут 53 секунды
И ещё, не подскажешь почему не работает?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <conio.h>
 
void main ()
{
    FILE *f1,*f2;
    f1=fopen("c:\\tmp\\name_1.txt","w");
    //fprintf(fo,"Hello world\n\n");
    int i;
    int a[5], b[5];
    /***********************/
    for (i=0; i<5; i++)
    {
        printf("Input num: ");
        scanf("%d",&a[i]);
        fprintf(f1,"%d\n",a[i]);
    }
    fclose(f1);
    /***********************/
    f1=fopen("c:\\tmp\\name_1.txt","r");
    for (i=0; i<5; i++)
    {
    fscanf(f1,"%d",b[i]);   
    }
    fclose(f1);
    /**********************/
    f2=fopen("c:\\temp\\name_2.txt","wt");
    for (i=0; i<5; i++)
    {
        b[i]=b[i]+5;
        fprintf(f2,"%d\n",b[i]);
    }
    fclose(f2);
        getch();
}
0
296 / 56 / 5
Регистрация: 22.05.2008
Сообщений: 788
02.12.2008, 19:08 14
Что через указатели? Тут и так есть указатель.
Советую почитать книгу и, извините, не парить нам мозг теми вопросами, которые книга может изложить лучше чем мы.
0
0 / 0 / 0
Регистрация: 10.11.2008
Сообщений: 26
02.12.2008, 19:42  [ТС] 15
Пишу как ты говоришь, но всё равно получается имя filename_1.txt
C++
1
2
3
char filename_1[256];
    std::cin.getline(filename_1, 255);
    f1=fopen("c:\\tmp\\filename_1.txt","w");
0
4 / 4 / 0
Регистрация: 02.12.2008
Сообщений: 11
02.12.2008, 19:54 16
Недавно отвечал на подобный вопрос, поэтому не лень выложить исходник:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
#include <conio.h>
int main(int argc, char *argv[ ])
{
    FILE *fin;
    FILE *fout;
    if (argc != 3) {  /* Проверка командной строки */
        printf("\n Формат вызова программы:");
        printf("\n copyfile.exe");
        printf("\n файл-источник файл-приемник");
    }
    if ((fin = fopen(argv[1], "r")) == NULL) {
    /* Открытие вх. файла */
        perror(argv[1]);
        return 1;
    }
    if ((fout = fopen(argv[2], "w")) == NULL) {
    /* Открытие вых. файла */
        perror(argv[2]);
        return 1;
    }
 
    char ch, buf[100] = "";
    int i = 0;
    do {  /* цикл сохранения во временную переменную и 
                вывода в потоки всех символов кроме пробела
                и одиночных символов */
        ch = fgetc(fin);
        if (ch != ' ' && ch != EOF)
            buf[i++] = ch;
        else {
            if (i > 1) {
                fputs(buf, fout);
                printf("%s", buf);
            }
            i = 0;
        }
        buf[i] = '\0';
    } while (ch != EOF);
 
    fclose(fin);
    fclose(fout);
    getch( );
    return 0;
}
Кстати вся верхняя часть из книги Подбельского - прог. на СИ, почитай на досуге.
1
2 / 2 / 2
Регистрация: 04.11.2008
Сообщений: 37
02.12.2008, 20:01 17
Цитата Сообщение от xotabs Посмотреть сообщение
Пишу как ты говоришь, но всё равно получается имя filename_1.txt
Код
char filename_1[256];
    std::cin.getline(filename_1, 255);
	f1=fopen("c:\\tmp\\[COLOR="Red"]filename_1[/COLOR].txt","w");
Вспоминается Райкин:
- Как ваша фамилия?
- Горидзе.
- А зовут вас как?
- Авас.
- Меня Николай Степанович, а вас?
- Авас.
- Меня Николай Степанович, а вас?
- Авас.
- Меня Николай Степанович! А вас?!
- Авас.
0
02.12.2008, 20:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2008, 20:01
Помогаю со студенческими работами здесь

Как записывать в rtf файл
Пожалуйста, можно пример кода как записывать в rtf файл, или как работать с ним, за ранее спасибо

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

Как записывать в файл на новую строку?
Помогите пожалуйста.. Как записывать в файл на новую строку (запись производится в конец предыдущей...

Как записывать в файл символы с пробелами?
как записывать в файл символы с пробелами? Есть структура struct sport_complex{ struct...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru