Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
CVB
99 / 90 / 53
Регистрация: 22.03.2011
Сообщений: 226
1

Работает ли fopen без stdio.h?

24.09.2011, 20:10. Просмотров 1201. Ответов 8
Метки нет (Все метки)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
char ch[100];
int main()
{
 
    FILE *f1;
    f1=fopen("D:\\proba02.txt","wt"); 
    putc('1',f1);
    fputs("gregeth",f1);
 
    fclose(f1);                                      
    f1=fopen("D:\\proba02.txt","rt");
    //fseek(f1,0,SEEK_SET); //это без stdio не работает, а вот выше две строки 
                                //заменяют эту строку с  fseek: там есть SEEK_SET,
                                // а без stdio.h оно не работает.
 
 
    fgets(ch,3,f1);
    puts(ch);
return 0;
}
И все это работает в Visual Studio 2010 и без stdio.h, а в книгах пишут, что fopen, fclose, fputs, fgets, putc требуют stdio.h. Объясните, пожалуйста, почему указанная выше программа работает без #include "stdio.h".
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2011, 20:10
Ответы с готовыми решениями:

Код работает без stdio.h
функция printf насколько я знаю обьявляется в заголовочном файле stdio.h.. почему она работает...

Использование printf без stdio.h не вызывает ошибок
код notepad++ // #include <stdio.h> main (void) { int fahr; for (fahr = 300; fahr >= 0;...

Программа останавливается без ошибок на fopen
Добрый вечер. Программа останавливается без ошибок или сообщений дебагера на строчке 190....

Открыть файл без функции fopen
Всем привет. В общем, нужно обойтись в программе без stdio.h и без функции fopen, по-скольку...

Fopen не работает в VS 2013
ребята, написал код в visual studio 2013, но она не хочет компилировать и выдаёт ошибку с fopen....

8
alex_x_x
бжни
2456 / 1663 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
24.09.2011, 20:51 2
#include "stdafx.h" подключает прекомпилированные header'ы - набор уже скомпиленных файлов, в числе которых и stdio.h
2
CVB
99 / 90 / 53
Регистрация: 22.03.2011
Сообщений: 226
24.09.2011, 23:43  [ТС] 3
Спасибо за ответ. А string.h тоже входит, но так как тут не катит. Нужно прописывать #include "string.h". Подскажите, пожалуйста, как быть здесь?

Добавлено через 14 минут
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
#include "stdafx.h"
#include <ctype.h>
//#include <stdio.h> //снял т.к. оказывается он есть.
//#include <string.h>
        
#define SEPCHARS ".,;:!?"
#define FILE_NAME "D:\\proba01.txt"
        
int isVowel(int c){
        char vowels[] = "AEIOU";
        return ( strchr(vowels, toupper(c)) != NULL );
}
 
int main(void){
        FILE *f;
        char buf[BUFSIZ];
        size_t len;
        
        if ( ( f = fopen(FILE_NAME, "r") ) == NULL ){
                perror("Can't open input file!\n");
                return 1;
        }
        while ( fscanf(f, "%s", buf) == 1 ){
                len = strlen(buf);
                while ( len > 0 && strchr(SEPCHARS, buf[len - 1]) )
                        buf[--len] = '\0';
                if ( isVowel(*buf) && isVowel(*(buf + len - 1)) )
                        printf("%s\n", buf);
        }
        if ( ferror(f) ){
                perror("Can't read from file!\n");
                return 1;
        }
        fclose(f);
        return 0;
}
Вот комент стоит на include "string.h". И есть ошибки, если забрать комент - будет работать программа.
( Для этого кода нужно создать файл D:\\proba01.txt и я ввел в нем "Alla, allo, malloc, ln, log, gilly, ua". Задача: вывести слова, которые начинаются и оканчиваются гласными.)
"Нужно прописывать #include "string.h". Подскажите, пожалуйста, как быть здесь?"
0
alex_x_x
бжни
2456 / 1663 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
24.09.2011, 23:50 4
а в чем проблема - есть string.h там или нет?
0
24.09.2011, 23:50
-=ЮрА=-
Заблокирован
Автор FAQ
25.09.2011, 00:05 5
Цитата Сообщение от CVB Посмотреть сообщение
Нужно прописывать #include "string.h". Подскажите, пожалуйста, как быть здесь?
- если пишешь в 10-ке то нужно использовать заголовки в новом стиле + указывать хедер на компиляцию не в каталоге программы #include "хедер", а в стандартных директориях #include <хедер>
Вот такая запись будет по всем правилам
C++
1
#include <cstring> //заголовок в новом стиле cstring вместо string.h + <> - стандартные директории
1
-=ЮрА=-
Заблокирован
Автор FAQ
25.09.2011, 00:12 6
В добавок скажу что если есть необходимость посмотреть а каким же образом попадает в проект функция казалось бы не объявленная в инклуде предлагаю юзать меню Go To function Definition (привёл скрин). Юзать легко - выделяем имя функции и выбираем пункт меню

PS:Например указанный мной скрин привеедёт в ctype.h хотя в программе его нет(см листинг этого топика http://www.cyberforum.ru/cpp-beginners/thread355968.html#post2011488
(он подключён таким же образом как сказал alex_x_x - дословно через другие хедеры)
2
Миниатюры
Работает ли fopen без stdio.h?  
CVB
99 / 90 / 53
Регистрация: 22.03.2011
Сообщений: 226
25.09.2011, 00:19  [ТС] 7
String.h находиться вот:

Работает ли fopen без stdio.h?


Он там есть, но если будет такой заголовок:
C
1
2
#include "stdafx.h"
#include <ctype.h>
то strchr, strlen подчеркнуло красным
0
alex_x_x
бжни
2456 / 1663 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
25.09.2011, 00:28 8
ну нет функций из string.h/cstring в precompiled headers, и что?
1
CVB
99 / 90 / 53
Регистрация: 22.03.2011
Сообщений: 226
25.09.2011, 00:34  [ТС] 9
Цитата Сообщение от alex_x_x Посмотреть сообщение
ну нет функций из string.h/cstring в precompiled headers, и что?
нету ну и не нужно =)
Вот и разобрались. Спасибо!
0
25.09.2011, 00:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2011, 00:34

Не работает fopen, скажите что не так плз
Имеется программа по заданию: Дан текст. Написать программу печати всех строк, которые короче 10...

Программа останавливается без ошибок на fopen
Добрый вечер. Программа останавливается без ошибок или сообщений дебагера на строчке 190....

fopen не работает
Добрый день. Вопрос такой: Почему-то у меня не работет фунция fopen. Все действия выполняются в...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru