从 C 中的不同文件调用方法

标签 c

因此,在类里面,我们将讨论函数,但我对如何在多个文件中调用多个函数有点迷失。例如,在一个项目中,除了 header 之外,我还有三个文件,一个从文本文件中获取变量,一个从这些变量运行各种计算,最后一个将所有内容组合在一起的主文件。

标题.h

#include <stdio.h>      
#include <ctype.h>

main.c

#include "header.h"

void main(){
FILE *f, *o;
int a, b, c, sum;

while(getInt() != EOF){
    fprintf(calc()); 
}

输入.c:

int getInt(FILE *f, int a, int b, int c){
    fscanf(f, "%i %i %i", a, b, c);
}

计算.c:

int Calc(){
    sum = a+b+C;
}

我主要遇到麻烦的部分是主文件中 calc() 的部分。这是调用该方法并将其打印到文件的正确方法吗?或者,还有更好的方法?另外,我是否需要将 getInt 导入到 calc 中,或者我有什么好处,因为 main 应该接受这两个函数并使它们工作?感谢任何人都可以给我提供的任何见解帮助。

最佳答案

也许是这样的

标题.h

#ifndef HEADER_H
#define HEADER_H
#include <stdio.h>      
#include <stdlib.h>

int getInt(FILE *f, int *a, int *b, int *c);
int calc(int a, int b, int c);

#endif

main.c

#include "header.h"

int main(void){
    FILE *f, *o;
    int a, b, c;/* sum; */

    f = fopen("input.txt", "r");
    o = fopen("output.txt", "w");
    if(!f || !o){
        fprintf(stderr, "Failed to open the file.\n");
        exit(EXIT_FAILURE);
    }

    while(getInt(f, &a, &b, &c) != EOF){
        fprintf(o, "%d\n", calc(a,b,c)); 
    }
    fclose(o); fclose(f);
}

输入.c:

#include "header.h"

int getInt(FILE *f, int *a, int *b, int *c){
    return fscanf(f, "%i %i %i", a, b, c);
}

计算.c:

int calc(int a, int b, int c){
    return a + b + c;
}

关于从 C 中的不同文件调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46537029/

相关文章:

c - 根据分隔符分割一串整数并转换为int类型?

c - 为什么 mmap 不能分配内存?

C 读/写和清除 FILE

c - 在 C 中包含 wiiuse.h

C++:将 LPTSTR 转换为字符数组

c - 枚举声明错误

c - 我不明白 SPI 驱动程序中的一行代码

c - 使用数组指针会产生错误

c - 接收字符串时出现截断错误

自定义 linux pcie 驱动程序 MSI 中断