a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 75|回复: 0

[C++] 2011年计算机二级C++辅导实例编程(14)

[复制链接]
发表于 2012-7-31 21:56:58 | 显示全部楼层 |阅读模式
  生成手机号码文本c++程序源码* y) ^( t8 L0 F- F3 A# ^( `
  // makeyqm.cpp : 定义控制台应用程序的入口点。* ^( g# s  G9 {* A. c' m
  //) T0 I+ n  t% ?0 M
  #include "stdafx.h"
+ ?( O) x% I# s/ K( h- [  #include "stdio.h"# u7 W. _* a) r  Z' {3 l6 z
  #include "stdlib.h"
1 e5 |1 x, X$ c# I# b% m5 Y/ Y  int i=1;8 v* a6 w9 M# B
  int _tmain(int argc, _TCHAR* argv[])" X. x+ O" \: i: e& o9 Q, Z' y
  // 主程序_tmain支持unicode别名,定义一个整形argc记录参数个数
  ]1 M0 U; o: S/ R* e/ }  //_TCHAR* argv[] 则是所有参数的一个数组
- ]% |$ E* n  X! T# D  {
  y5 p3 y' b1 v! w) c  if(argc!=3) {
$ ]2 B% I" W" d  printf("USAGE: MAKEYQM phonefile yqmfile");- s1 N5 T' t% f3 n- a2 ]( q9 r! O: a5 b- ~
  return 1;
) b8 Z9 _3 X! ]6 {0 @7 T$ g: _1 x# g9 }) I  } //如果发现参数不等于3个就提示USAGE: MAKEYQM phonefile yqmfile
) I/ D) T6 b0 U  k- ^# y  FILE *fp1,*fp2,*fp3;. [1 |1 I. V: }
  if( (fp1=fopen(argv[1], "r")) == NULL) {
1 E. r, y* A: A; J  printf("can't open file: %s", argv[1]);
" O* m2 c3 l! T; o* c; G4 ~0 \  return 1;
0 L' v; t7 `) _) n# w/ d  } //如果读取第一个参数为空,就打印不能打开该文件$ J/ Z/ u) E+ G2 q: s1 t1 A1 ~+ A6 A
  if( (fp2=fopen(argv[2], "r")) == NULL ) {
3 F0 o' j5 ?+ s4 n6 h1 O  printf("can't open file: %s", argv[2]);' W- v1 v% H( y2 y4 v
  return 1;
  P9 A4 r% O$ U  }//如果读取第二个参数为空,就打印不能打开该文件
4 ~! G/ }* C5 `  char phone[255], yqm[255];
& R) ~, p' Z  A0 w  //定义两个数组phone,yqm
5 E4 k) G2 f+ W. b, ^# @  while( fgets(phone, 255, fp1) && fgets(yqm, 255, fp2)) {
5 C  ?  x  \6 D2 P  w! ?4 `  //当从fp1和fp2流中读取255个字符串数据长度时
$ q! L7 s7 E% g, V4 @  phone[strlen(phone)-2]=0;
+ S6 C4 u: w5 ^$ ]  //把0赋值给phone的长度-2
% x# v* `4 m' ]' d) {8 Q* a  strcat(phone,".txt");9 u: a# X! G: w8 a9 r& k- ~' M
  //把txt的内容追加给到phone结尾处(覆盖dest结尾处的'\0')并添加'\0'.
7 h5 E+ g" D& [, [: z$ q; T/ }  if( (fp3=fopen(phone,"a")) == NULL ) {
, }2 A0 x9 n7 [1 t/ I5 Z  printf("can't open file: %s", phone);
8 [1 ^1 p1 R/ |* b4 J' u: U, a  return 1;
4 O, F9 p0 {4 C8 ~! C# S% g  } //如果追加打开或创建文本为空
3 u% l0 M# I# _8 N9 S) K1 ^7 ?  fputs(yqm,fp3); //把fp3的字节流送到yqm参数中
7 J& t  m/ I+ N* _; W# d  g6 j  fclose(fp3); //关闭fp3参数内容
8 y0 n1 H, Z7 ^  printf("%d - Write %s ... OK\n", i, phone);, c( M9 z& Y# r
  i++;6 U& e) i3 |8 g! g  c1 {5 r
  } //递增输出phone的字符内容
/ |5 t  q* w  v0 \  fclose(fp2); //关闭fp2参数内容2 |. n3 d- j. w% b# }5 R4 \9 z
  fclose(fp1); //关闭fp1参数内容
8 q4 H) Z. Q' S6 V- v  printf("Complete!"); //打印完成
8 b7 S  k) ~( F+ D$ y( {, I0 v  return 0; //结束参数
3 a4 h) b& {7 {  }8 Y, t; W. L6 L+ e7 H+ K
  文章中涉及到的一些参考6 u, i& C0 G2 f4 D& [
  fputs& @+ G0 e! r6 {0 p6 v4 }) K
  函数名: fputs
% [6 P+ Y0 j* b# X0 R* t4 \  功 能: 送一个字符串到一个流中* M" `1 y' [1 I" q) K* g0 ?# d* `
  用 法: int fputs(char *string, FILE *stream);
5 s7 |$ [$ `5 i  程序例:. E9 B8 }! E, h5 S) {* f7 k
  #include 4 L- w! n& V5 G  E
  int main(void)
6 K, K" L; ~# z* Z: V" T  {
5 f5 i5 G& Q0 i  C  /* write a string to standard output */: C, i# K) n5 v% r
  fputs("Hello world\n", stdout);
: l7 z- q* ?; b) o" |  return 0;7 q4 q$ J# M# |" d4 L3 s
  }
8 H  v9 X- W; k- B% C0 S% A  fp=fopen(filename,"a");0 k$ q' r, e. H: F" d0 M  `
  fseek(fp,0,SEEK_SET);//我以为此时光标位置是文件开头,结果发现光标位置是文件的末尾,也就是说“a”只能以追加方式写,只能定位到原文件末尾,而不能是原文件中间的某个位置
" k: X' l: [/ Z$ l; q# E- S! C! C  “r” 打开文本文件用于读
  c! I1 R6 d* g/ P8 k6 e$ ]  “w” 创建文本文件用于写,并删除已存在的内容(如果有的话): c# w, D6 s. p8 w
  “a” 追加,打开或创建文本文件,并向文件末尾追加内容
  p0 V8 |! p. S) \4 o  “r+” 打开文件用于更新(即读和写)
* |/ G* V* C; D4 W  “w+” 创建文本文件用于更新,并删除已存在的内容(如果有的话)
( S+ z6 K+ c( o" P* f6 ~( `- e0 @  “a+” 追加:打开或创建文本文件用于更新,写文件是追加到文件末尾。
8 C; w3 b) l1 Z+ L, U# Y  strcat  原型:extern char *strcat(char *dest,char *src);$ p! ?. Q1 {0 y6 P5 f& s
  用法:#include
  y- \) h5 E2 N9 ~# r6 ~' v  功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
6 a7 q7 Z5 A7 l6 a% z4 H8 T. H  说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。. }1 W, A* ]& z: P
  返回指向dest的指针。+ S+ C: ~/ Y0 R0 a8 L& J. E- T
  举例:
6 u0 e3 O, |: T& s; J6 w  // strcat.c
' r" S6 b) ?3 k+ d6 U0 o  #include
" k5 N! `( F) @9 |/ Z  #include # C- x( q4 ~# S. X% c" w2 c
  main()
# u* _( H4 V. V1 G8 k, L8 u) H  {" Q4 J  E2 T/ Q1 ~$ M
  char d[20]="Golden Global";! l: v$ t9 W) y& F. g
  char *s=" View";
( B  p2 k4 m0 V7 y  clrscr();
+ k5 z! V" t% w0 k% Y  strcat(d,s);- L8 O+ x0 g( {& x3 q
  printf("%s",d);/ n: s9 V; b1 e8 v; I
  getchar();
! f0 M, {/ }0 c: L/ u4 i  e  return 0;
; h: j) \3 a  M: P- N  }
3 p" i) R5 m4 [# |( j+ a  程序执行结果为:! t9 m" ~" U1 ~" b' B# D6 d& e3 [
  Golden Global View
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-24 10:30 , Processed in 0.168736 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表