c primer plus 程序笔记

深入探讨C语言编程练习,从基础知识到思维优化,通过具体案例解析编程实践技巧,强调主函数与指针的使用,同时涉及文件输入输出及错误处理。重点突出编程思维的培养,提供详细解答与书本答案对比,旨在提升读者的编程能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一转眼c primer plus快学完了,我才意识到一件事,以后关于c语言的学习很难再找到一个全面详细的指引,尤其是编程的思维,理念,对程序的优化

但是我可以将未来一段时间未完成部分的笔记记下了



第12章 编程练习
练习一
我的答案

#include <stdio.h>
//int units = 0;
void critic (int *a);
int main (void)
{
   //extern int units;
   int units; 
   int *a;

   a=&units; 
   printf ("How many pounds to a firkin of butter?\n");
   scanf ("%d", &units);
   while (units != 56)
      critic (a);
   printf ("You must have looked it up!\n");
   return 0;
}   
void critic (int *a)
{   
   printf ("No luck, chummy. Try again.\n");
   scanf ("%d", a);
} 


书上的答案

#include <stdio.h>
void critic(int * u);
int main(void)
{
   int units;   /* units now local */

   printf("How many pounds to a firkin of butter?\n");
   scanf("%d", &units);
   while ( units != 56)
       critic(&units);
   printf("You must have looked it up!\n");
   return 0;
}

void critic(int * u)
{
   printf("No luck, chummy. Try again.\n");
   scanf("%d", u);
}

// or use a return value:
// units = critic(); 

// and have critic look like this:
/*
int critic(void)
{
   int u;
   printf("No luck, chummy. Try again.\n");
   scanf("%d", &u);
   return u;
}
*/

// or have main() collect the next value for units


主函数完全不必定义新的*a指针,直接可以把units的地址传递给critic函数


13章 文件输入/输出


13.1 和文件进行通信


文件是什么?一个文件通常就是磁盘上的一段命名的存储区。


UNIX是C的发源地,哈哈,LIKE linux


文件写入如果重新读取不要忘了rewind();

#include <stdio.h>
#include <stdlib.h>
int main (void)
{
   char ch;
   char a[100];
   FILE *fp;

   if ((fp = fopen ("ceshi.red","a+")) == NULL)
   {
      printf ("打开失败\n");
      exit (1);
   }

   while ((ch = getchar ()) != '\n')
   {
      putc (ch,fp);
      printf ("p\n");
   }
   printf ("R\n");
   rewind (fp);
   while ((ch = getc (fp)) != EOF)
   {
      putchar (ch);
      printf ("a\n");
   }
   return 0;
}

几经测试如果丢失rewind();是可怕的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赫敏璋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值