c语言-为什么没包含头文件,却可以使用文件里的函数

问题描述

为什么没包含头文件,却可以使用文件里的函数

在这代码里我没有包含
却可以使用islower()和isupper()

#include
int main()
{
int n=0, m=0;
char ch;
while ((ch = getchar()) != '
')
{
if (islower(ch))
n++;
else if (isupper(ch))
m++;

}
printf("The number of lower is %d
", n);
    printf("THe number of upper is %d",m);
return 0;

}

解决方案

一些编译器有自动包含一些头的功能,也可以在编译选项中定义,gcc就不要包含

解决方案二:

我这里必须包含
 #include <ctype.h>

解决方案三:

algorithm头文件里的函数
C语言头文件中包含的函数
头文件里的函数,只是声明

时间: 2024-09-30 08:47:45

c语言-为什么没包含头文件,却可以使用文件里的函数的相关文章

vc++-VC里面为什么要用def文件导出函数,直接在要用的地方包含头文件不行吗?

问题描述 VC里面为什么要用def文件导出函数,直接在要用的地方包含头文件不行吗? 1C VC里面为什么要用def文件导出函数,直接在要用的地方包含头文件不行吗? 解决方案 def用来导出dll函数列表,这么写比较直观一些,当然也可以直接在函数上修饰,两者都是可以的. 解决方案二: 为什么不直接包含要使用函数所在的头文件,而一定要导出? 解决方案三: 不是所有的函数都需要导出 解决方案四: 头文件里面是否应该包含函数的实现

windows-Linux下pipe()未包含头文件却提示重名问题

问题描述 Linux下pipe()未包含头文件却提示重名问题 (C++)在Windows下可以正常工作的程序,在Linux下无法编译,提示类型未声明.但在此之前我已经声明了名为"pipe"的类,并且添加了构造器.经过查询得知pipe重名,但并未包含有"pipe"的头文件.请问各位大神能否给我一个解释?我的教练拒绝回答我.理由是他不喜欢C++! #include <fstream>#include <cstdlib>using namespac

markdown代码快中define与包含头文件的误识别如何解决?

问题描述 markdown代码快中define与包含头文件的误识别如何解决? 在markdown中(使用haroopad) 用``` 包含起来的代码块中的#define会被高亮识别为H1,虽然不会在viewer中显示出错但还是很不舒服. 另外代码块中#inlcude <stdio.h>会被识别为一个html标签,影响之后的高亮识别,现在只能在"<"后面加一个空格来解决.大家有没有什么好办法,还是自己写的不规范?

C++的头文件和实现文件详解_C 语言

在C++编程过程中,随着项目的越来越大,代码也会越来越多,并且难以管理和分析.于是,在C++中就要分出了头(.h)文件和实现(.cpp)文件,并且也有了Package的概念. 对于以C起步,C#作为"母语"的我刚开始跟着导师学习C++对这方面还是感到很模糊.虽然我可以以C的知识面对C++的语法规范,用C#的思想领悟C++中类的使用.但是C#中定义和实现是都在一个文件中(其实都是在类里面),而使用C的时候也只是编程的刚刚起步,所写的程序也只要一个文件就够了.因此对于C++的Package

关于C++头文件与cpp文件的疑问

问题描述 关于C++头文件与cpp文件的疑问 http://www.cnblogs.com/laojie4321/archive/2012/03/30/2425015.html 我从上面的网站中看到这么一段话 如果在头文件中实现一个函数体,那么如果在多个C文件中引用它,而且又同时编译多个C文件,将其生成的目标文件连接成一个可执行文件,在每个引用此头文件的C文件所生成的目标文件中,都有一份这个函数的代码,如果这段函数又没有定义成局部函数,那么在连接时,就会发现多个相同的函数,就会报错 然后我自己测

文件类型,c语言文件读写,文件缓冲,文件打开方式,文件操作函数

文件类型分为:流文件和设备文件,设备文件比如:VGA接口,串口,usb口,网口,串口,这些接口都被操作系统抽象成为了文件. 当我们写程序的时候默认已经帮我们打开了三个文件 分别是: stdin:标准输入,stdout:标准输出,stderr:标准出错,scanf实际上接收的是标准输入的数据,这时候的标准输入就是我们的键盘.              有四种方式清空缓冲区:      A.加'\n';            B.程序正常退出;      C.通过fflush(stdout)也可以清

c++ 头文件定义数组 实现文件初始化 问题

问题描述 c++ 头文件定义数组 实现文件初始化 问题 c++ 新手 在类里定义一个数组 class A { public: A(); private: int m_a[3]; }; 在实现文件里初始化 A::A() { // 这样为什么不对 m_a = {1, 2, 3}; // 这样就可以 m_ap[0] = 1; m_ap[1] = 2; m_ap[2] = 3; } 怎样才能在实现文件里初始化 我知道有一种是用static有没有其它的方法 解决方案 m_a 是一个地址 ,m_a = {1

C++的头文件和实现文件分别写什么

在C++编程过程中,随着项目的越来越大,代码也会越来越多,并且难以管理和分析.于是,在C++中就要分出了头(.h)文件和实现(.cpp)文件,并且也有了Package的概念. 对于以C起步,C#作为"母语"的我刚开始跟着导师学习C++对这方面还是感到很模糊.虽然我可以以C的知识面对C++的语法规范,用C#的思想领悟C++中类的使用.但是C#中定义和实现是都在一个文件中(其实都是在类里面),而使用C的时候也只是编程的刚刚起步,所写的程序也只要一个文件就够了.因此对于C++的Package

C语言按关键字搜索文件夹中文件的方法_C 语言

本文实例讲述了C语言按关键字搜索文件夹中文件的方法.分享给大家供大家参考.具体实现方法如下: 方法1: #include<iostream> #include<string> #include<io.h> using namespace std; void filesearch(string path,string mode) { struct _finddata_t filefind; if(path[path.size()-1]=='\\') path.resize