c - 在c中,char类型的参数与const char参数类型不兼容

标签 c file char constants

我目前在该代码块中遇到标题错误。

void Option_3(char filename)
{ // profit for a month

    FILE *ptr_file;
    int num1, num2, num3;
    int a[31],b[31],c[31];
    int count=0;
    int i;


    ptr_file = fopen ( filename ,"r"); // error is here at file name

稍后主要

void main()
{
    int select;
    char filename;
    select = 0 ;
    filename = "April.txt"; //here the equals sign is giving me the error.

最佳答案

您需要将其声明为char *:

void main()
{
    int select;
    char *filename; // Note the declaration
    select = 0 ;
    filename = "April.txt";

也在 Option_3 的参数声明中更改它:

void Option_3(char *filename)

原因是,将其声明为 char 意味着您有一个变量来保存 char 类型的对象。 C 中的字符序列是以 '\0' 结尾的字符数组,因此,char * 是正确的类型。

更新:更合适的是将其声明为 const char *,因为您无法修改字符串文字。

关于c - 在c中,char类型的参数与const char参数类型不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23676223/

相关文章:

android - 目录在 Windows 上显示为文件

java - 如何获取java中扫描仪对象中的文件名?

c - 为什么动态分配 char** 和 char* 类型会使用 malloc 段错误?

c - 如何手动计算给定多维数组索引的索引偏移量?

c - 什么函数实际调用 WinMain

C 中的字符数组?

c - 我只需要一个字符,如果用户输入多个字符,如何打印错误信息?

C中使用递归计算数组的累加和

file - 戈兰 : Getting "fatal error: all goroutines are asleep - deadlock" on waitGroup. 等待()

c++ - 在 C++ 中通过套接字发送图像