打印在C

时间:2015-11-20 15:33:43

标签: c integer printf

我是C编程的新手,无法编译应该是一个非常简单的函数。这个名为printSummary的函数只需要3个整数作为参数,然后打印一些文本和这些整数。例如,如果hits = 1,misses = 2,evictions = 3,则printSummary(hits,misses,evictions)应打印以下内容:

点击数:1次失误:2次驱逐:3次

以下是我正在使用的代码。提前感谢任何建议。

#include<stdio.h>

void printSummary(int hits, int misses, int evictions)
{
    printf('hits: %d\n');
    printf('misses: %d\n');
    printf('evictions: %d\n');
}

int main()
{
    int hit_count = 1;
    int miss_count = 2;
    int eviction_count = 3;
    printSummary(hit_count, miss_count, eviction_count);
    return 0;
}

编译此代码会给我几个警告,但没有错误。当我运行代码时,我遇到了分段错误。就像我说的那样,我对C来说相当新,所以我很可能只是一个简单的解决方案。提前感谢任何建议。

3 个答案:

答案 0 :(得分:4)

进行以下更改。

   printf("hits: %d\n",hits);
   printf("misses: %d\n",misses);
   printf("evictions: %d\n",evictions);

printf有一个

int printf(const char *format, ...)

原型。因此,在第一个参数中,您可以传递格式说明符,然后在下一个参数中提供要打印的实际变量/值

答案 1 :(得分:1)

错误是:

void printSummary(int hits, int misses, int evictions)
{
    /* Name: printf
    Prototype: int printf (const char *template, ...)
    Description:
    The printf function prints the optional arguments under the
     control of the template string template to the stream stdout. 
    It returns the number of characters printed,or a negative value if
     there was an output error.*/

    printf("hits: %d\n", hits); // don't use ' it is used only for char variable for example: char a = 'c';
    printf("misses: %d\n", misses);
    printf("evictions: %d\n", evictions);
}

答案 2 :(得分:0)

未正确调用printf函数。您必须包含打印所需的整数:

printf("hits: %d\n", hits);
printf("misses: %d\n", misses);
printf("evictions: %d\n", evictions);

阅读有关printf函数here的更多信息。