精华内容
下载资源
问答
  • 刚学习C语言的小伙伴是否还在为终端上实现类似与mysql的表格式整齐打印出字符串信息而感到烦恼呢!因为中文字符串的存在,导致 老是无法实现格式上的对齐,今天小编,哦,不,是楼主,为你们提供了解决方案。(好吧...
  • C语言--输出打印表格

    万次阅读 2013-06-07 19:12:31
    打印一个投资利率表
    //
    //  invest.c
    //  day05
    //
    //  打印一个投资利率表
    //  打印100元在指定年份内投资,按相应回报率计算收益 ,程序输出如下:
    //  利率:  6%			年份:5
    //
    //  Year 		6%			7%          8%        9%         10%
    //   1		   106         107         108       109         110
    //   2         112.36     114.49      116.64    118.81       121
    //   3         119.10     122.50      125.97    129.50      133.10
    //   4
    //   5
    //  Created by apple on 13-6-6.
    //  Copyright (c) 2013年 apple. All rights reserved.
    //
    
    #include <stdio.h>
    
    //通过迭代方式计算利率。
    double income(int y,double r){
        
        double i = 0.0;
        if(y==1){
            i = 100 * (1 + r);
            printf("%.2lf\n",i);
        }else{
            y -= 1;
            i = income(y, r) * (1 + r);
            printf("%.2lf\n",i);
        }
        
        return i;
    }
    
    int main()
    {
        int year = 0;
        double rate = 0.0;
        printf("请输入利率:");
        scanf("%lf",&rate);
        printf("请输入年份:");
        scanf("%d",&year);
        
        income(year,rate);
        
        
        return 0;
    }
    展开全文
  • C语言->格式化输出表格

    千次阅读 2019-08-25 13:37:02
    几点说明: 注意! 表中的每一行,代表一种基本类型。“[]”代表可省略。 例如:char、signed char、unsigned char是三种互不相同的类型;...int、short、long也是三种互不相同的类型。...可以使用C++的函数重载特性进行...

    原文地址:http://www.cnblogs.com/foundwant/archive/2013/03/28/2986762.html

    在这里插入图片描述

    几点说明:

    1. 注意! 表中的每一行,代表一种基本类型。“[]”代表可省略。

      例如:char、signed char、unsigned char是三种互不相同的类型;

      int、short、long也是三种互不相同的类型。

      可以使用C++的函数重载特性进行验证,如:

      void Func(char ch) {}

      void Func(signed char ch) {}

      void Func(unsigned char ch) {}

      是三个不同的函数。

    2. char/signed char/unsigned char型数据长度为1字节;

      char为有符号型,但与signed char是不同的类型。

      注意! 并不是所有编译器都这样处理,char型数据长度不一定为1字节,char也不一定为有符号型。

    3. 将char/signed char转换为int时,会对最高符号位1进行扩展,从而造成运算问题。

      所以,如果要处理的数据中存在字节值大于127的情况,使用unsigned char较为妥当。

      程序中若涉及位运算,也应该使用unsigned型变量。

    4. char/signed char/unsigned char输出时,使用格式符%c(按字符方式);

      或使用%d、%u、%x/%X、%o,按整数方式输出;

      输入时,应使用%c,若使用整数方式,Dev-C++会给出警告,不建议这样使用。

    5. int的长度,是16位还是32位,与编译器字长有关。

      16位编译器(如TC使用的编译器)下,int为16位;32位编译器(如VC使用的编译器cl.exe)下,int为32位。

    6. 整型数据可以使用%d(有符号10进制)、%o(无符号8进制)或%x/%X(无符号16进制)方式输入输出。而格式符%u,表示unsigned,即无符号10进制方式。

    7. 整型前缀h表示short,l表示long。

      输入输出short/unsigned short时,不建议直接使用int的格式符%d/%u等,要加前缀h。

      这个习惯性错误,来源于TC。TC下,int的长度和默认符号属性,都与short一致,

      于是就把这两种类型当成是相同的,都用int方式进行输入输出。

    8. 关于long long类型的输入输出:

      “%lld"和”%llu"是linux下gcc/g++用于long long int类型(64 bits)输入输出的格式符。

      而"%I64d"和"%I64u"则是Microsoft VC++库里用于输入输出__int64类型的格式说明。

      Dev-C++使用的编译器是Mingw32,Mingw32是x86-win32 gcc子项目之一,编译器核心还是linux下的gcc。

      进行函数参数类型检查的是在编译阶段,gcc编译器对格式字符串进行检查,显然它不认得"%I64d",

      所以将给出警告“unknown conversion type character `I’ in format”。对于"%lld"和"%llu",gcc理

    所当然地接受了。

    Mingw32在编译期间使用gcc的规则检查语法,在连接和运行时使用的却是Microsoft库。

    这个库里的printf和scanf函数当然不认识linux gcc下"%lld"和"%llu",但对"%I64d"和"%I64u",它则是乐意接受,并能正常工作的。

    1. 浮点型数据输入时可使用%f、%e/%E或%g/%G,scanf会根据输入数据形式,自动处理。

      输出时可使用%f(普通方式)、%e/%E(指数方式)或%g/%G(自动选择)。

    2. 浮点参数压栈的规则:float(4 字节)类型扩展成double(8 字节)入栈。

      所以在输入时,需要区分float(%f)与double(%lf),而在输出时,用%f即可。

      printf函数将按照double型的规则对压入堆栈的float(已扩展成double)和double型数据进行输出。

      如果在输出时指定%lf格式符,gcc/mingw32编译器将给出一个警告。

    3. Dev-C++(gcc/mingw32)可以选择float的长度,是否与double一致。

    4. 前缀L表示long(double)。

      虽然long double比double长4个字节,但是表示的数值范围却是一样的。

      long double类型的长度、精度及表示范围与所使用的编译器、操作系统等有关。

    展开全文
  • 7-5 表格输出 (C语言

    千次阅读 2018-10-31 20:37:11
    本题要求编写程序,按照规定格式输出表格。 输入格式: 本题目没有输入。 输出格式: 要求严格按照给出的格式输出下列表格: ------------------------------------ Province Area(km2) Pop.(10K) -----------...

    本题要求编写程序,按照规定格式输出表格。

    输入格式:

    本题目没有输入。

    输出格式:

    要求严格按照给出的格式输出下列表格:

    ------------------------------------
    Province      Area(km2)   Pop.(10K)
    ------------------------------------
    Anhui         139600.00   6461.00
    Beijing        16410.54   1180.70
    Chongqing      82400.00   3144.23
    Shanghai        6340.50   1360.26
    Zhejiang      101800.00   4894.00
    ------------------------------------

    关于此题: 

    我觉得这题不需要怎么思考,难道考查点是在于输出?(可能是吧),如果大家有什么想法的,欢迎一起讨论

    我直接将题中内容复制到我的代码中,附上代码:

    #include <stdio.h>
    
    int main(){
    	printf("------------------------------------\n");
    	printf("Province      Area(km2)   Pop.(10K)\n");
    	printf("------------------------------------\n");
    	printf("Anhui         139600.00   6461.00\n");
    	printf("Beijing        16410.54   1180.70\n");
    	printf("Chongqing      82400.00   3144.23\n");
    	printf("Shanghai        6340.50   1360.26\n");
    	printf("Zhejiang      101800.00   4894.00\n");
    	printf("------------------------------------\n");
    	return 0;
    	
    }

     

    展开全文
  • c语言获取表格数据

    千次阅读 2019-11-06 16:59:33
    虽然数据处理拥有多种便捷语言支持,但课设需要使用c语言实现,因此学习如何将excel表格信息导入程序中进行处理

    任务

    虽然数据处理拥有多种便捷语言支持,但课设需要使用c语言实现,因此学习如何将excel表格信息导入程序中进行处理

    所需

    • c语言运行平台
    • 数据表格

    步骤

    1.查阅发现,通过处理csv(comma separated-values)文件,在python学习时接触到,为逗号分隔的文本格式,可以被和文本文件相同方式处理。
    2.将表格另存为csv格式。
    打开excel表格,点击另存为

    3.读入文件

    FILE* fp;
    fp = fopen("oneturntask.csv", "r");

    4.目标为写一个读文件的模板,可以通过修改简单的参数,灵活读入不同文件的数据,方便多次使用

    • 读入表头信息
    #define HEADERMAXLEN 100 //表头最大字符总长
    #define TITLEMAXLEN 100 //单个标题最大字符长度
    #define TITLEMAXNUM 20 //标题最大数量
    
    int colNum=0;//记录表格数据总列数
    int lineCodeCol, leaveTimeCol, directionCol, actualTimeCol;//记录需要的数据所在列数
    char csvHeader[HEADERMAXLEN];//存储表头信息
    char title[TITLEMAXNUM][TITLEMAXLEN];//存储各个标题
    int lineData[TITLEMAXNUM];//读入数据
    int readAll = 0;//判断是否到文件结尾
    
    char* pHeader;
    char* pTitle;
    
    fscanf(fp, "%s", &csvHeader);//读入表头信息
    //cout << "表头全部信息如下:" << csvHeader << endl;
    
    for (pHeader = csvHeader; *pHeader != '\0'; pHeader++)
     { 
      	colNum++;//空出0号存储位置,与实际列数相一致
      	pTitle = title[colNum];
      	while (*pHeader != ',' && *pHeader != '\0')
      	{   
       		*pTitle++ = *pHeader++; 
      	}
      	*pTitle = '\0';  
      	//  cout << "第"<<colNum<<"列:"<<title[colNum] << endl;
      	if (*pHeader == '\0')//读到表头末尾退出循环
       		break;  
     }
     //cout << "共有数据:" << colNum << "列" << endl;
    • 定位所需数据
    #define LINECODE "LineCode"
    #define LEAVETIME "LeaveTime0"
    #define ACTUALTIME  "ActualTime"
    #define DIRECTION "WorkDirection"//表头关键字预定义
    for (int i = 1; i <= colNum; i++)
    { 
      if (strcmp(title[i], LINECODE) == 0)
      {
       	lineCodeCol = i;
       	//cout << "所需" << LINECODE << "位于第" << i << "列" << endl;
      }
       
      if (strcmp(title[i], LEAVETIME) == 0)
      {
       	leaveTimeCol = i;
       	//cout << "所需" << LEAVETIME << "位于第" << i << "列" << endl;
      }
       
      if (strcmp(title[i], DIRECTION) == 0)
      {
       	directionCol = i;
       	//cout << "所需" << DIRECTION << "位于第" << i << "列" << endl;
      }
       
      if (strcmp(title[i], ACTUALTIME) == 0)
      {
       	actualTimeCol = i;
       	//cout << "所需" << ACTUALTIME << "位于第" << i << "列" << endl;
      }   
    
    • 读入所需数据
    while (readAll==0)
    {
    	for (int i = 1; i <= colNum; i++)
      	{
       		if (fscanf(fp, "%d", &lineData[i]) == EOF)//判断读到文件末尾
       		{
       			 readAll = 1;
        			 break;
      		}
        
       		fgetc(fp);
     	}
     	//打印文件信息
     	/*
     	if (readAll == 0)
      	{
      		for (int i = 1; i <= colNum; i++)
       		{
        			if (i == lineCodeCol)
         				cout << "lineCode:" << lineData[i] << " ";
       			if (i == leaveTimeCol)
         				cout << "leaveTime:" << lineData[i] << " ";
         			if (i == actualTimeCol)
         				cout << "actualTime:" << lineData[i] << " ";
        			if (i == directionCol)
         				cout << "direction:" << lineData[i] << " ";
       		}
       	}
       	*/
    }

    5.能够对文件信息在读取后进行处理,关闭文件

    fclose(fp);

    结果验证

    在这里插入图片描述

    在这里插入图片描述

    写在后面

    想读取其他文件做调整时发现,可移植性并不优秀,面对表格中的字符数据处理显出无力,只能手动删除所有包含字符单元列进行测试。

    优化想法:

    对单元格的读取函数做封装:一次读取一个单元格全部内容至字符数组保存,之后再进行处理。

    展开全文
  • C语言控制台打印输出整齐问题

    千次阅读 多人点赞 2019-07-08 17:19:33
    经常写程序时需要打印输出,然后每次又打印的一团糟糕,我又是一个接近强迫症和略微完美主义者,碰巧好像网上没有我所需要的帖子,所以经过探索之后得到这些如何让自己在控制台打印输出整齐的Tips,同时和大家分享!...
  • c语言表格形式输出In this tutorial you will learn about difference between C and C++ language i.e. C vs. C++. It is one of the most commonly asked question in technical interviews. 在本教程中,您将...
  • C语言ASCII表以及运算符优先级ASCII表控制字符及其含义扩展ASCII表运算符优先级表在手 跟我走 ASCII表 说明:ASCII 码表中的数字0~31分配给了控制字符(ASCII码非打印控制字符),用于控制打印机等一些外围设备。...
  • 经常会遇到使用控制台进行命令行方式操作的需求,在控制台使用表格将一些结果有组织地反馈给工具使用者,是一个必要的功能,本文将给出一个用于实现控制台输出表格样式格式化的C语言代码,希望可以帮助到有此方面...
  • //需要两层循环 #include<iostream> using namespace std; int main(void) { int row;//是行的意思 int col;//是列的意思 cout << "请输入行:" ; cin >>... for (int i ...
  • C语言打印乘法表

    2014-09-11 10:22:58
    运用C语言程序代码实现打印乘法口诀表的功能
  • C语言操作Excel表格

    千次阅读 2017-06-02 10:46:38
    上网查找了好多的资料发现C语言不能操作Execl表格,说是比较用C++语言好操作,想了解更多请点此链接:C++操作Excel表格。 接下来介绍下一位学长介绍给我的方法,比较粗俗,但还是挺实用的。 第一步:先实用...
  • c语言经典案例

    2014-10-30 08:06:57
    实例266 绘制表格 411 实例267 绘制立体窗口 412 实例268 绘制椭圆 414 实例269 绘制圆弧线 415 实例270 绘制扇区 417 实例271 绘制空心圆 418 实例272 绘制箭头 419 实例273 绘制正弦曲线 420 实例274 绘制彩带 421...
  • ![图片说明](https://img-ask.csdn.net/upload/201601/14/1452783661_395733.png)
  • 七、使用printf打印9*9乘法口诀。 编程思路:9行9列的表,可定义两个数控制行和列。 #include &lt;stdio.h&gt; /*%3d的意思是,给当前输出项默认最少分配三个/输出位置, 如果输出的内容少于三个字符,那么...
  • C语言打印菱形总结

    2021-01-29 22:45:38
    打印菱形总结 常见菱形 打印菱形问题中菱形都是对称的,上下左右(有时候会去掉右半部分),一些做法是先打印上半部分再打印下半部分,这样容易理解,但是代码会重复冗长,我们可以把对称作为突破点简化代码。 以下...
  • c语言打印九九乘法表

    万次阅读 多人点赞 2018-11-12 12:44:49
    分析:这是一个典型的使用循环嵌套的题目。把题目分成两部分:被乘数和乘数。被乘数的变化是从1变化到9,乘数的变化是根据被乘数而来。这样就决定了被乘数的变化做为外循环,乘数的变化作为内循环。...
  • C语言printf对齐输出方式

    万次阅读 多人点赞 2017-02-07 10:36:10
    C语言中,常见的有两种方式可以实现其输出字符串或数字对齐输出 制表符\t 制表符\t输出的时候,会移动输出光标,实现对齐效果。因此可以在输出的对应位置,增加\t来实现对齐。但有个缺点:要求每行相同列输出占用...
  • C语言打印字符串实例

    千次阅读 2014-03-20 12:15:17
    #include #include void main() {  char a[5]="____\0";  printf("%s %s\n",a,a);  printf(" \n");  printf(" %s\n",a);...注意加了结束符\0,如果不加这个会乱码,还要注意字符是5,包括结束符。
  • C语言实验:打印日历

    千次阅读 2018-11-13 10:59:21
    C语言小实验:打印日历 项目实现首先输入公元后任意年份,然后可以打印出该年份的日历。 面向c语言初学者,大神轻喷hhh 下面是程序实际运行效果: 先输入年份 然后输出日历 思路分析: 想要输出每年的日历,首先...
  • C语言打印四种不用类型的九九乘法表 效果图如下: 相关代码: #include <stdio.h> void A() { int i,j; for(i=1;i<=9;i++){ for(j=1;j<=i;j++){ printf("%d*%d=%2d\t",i,j,i*j); } printf...
  • =================================================================================/******C语言打印EXCEL表格*********/ #include #include #include "datrd.h"int main() { //printf("0000000000
  • 打印ASCII表格
  • C语言打印素数 #include <stdio.h> #include <math.h> int main() { int i,j,count=0;//count 统计个数 i = 2;//i是2到100 while(i<=100) { j = 2; while(j<=sqrt(i))//取余 { if(i%...
  • 调用打印类并执行预览 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows....
  • 文件为c程序文件,实现功能:C语言输出csv文件,测量数据形成表格
  • //整齐打印文件内容的整合函数 void showInfoInorder(STNODE *head) {  int a = 1 + getLines(head); //读取员工信息并且存入字符串数组中来, 返回记录的行数  int n = 9;  char *name[a*n]; //定义二维字符...
  • C语言按要求打印数组

    2016-05-19 21:22:56
    在百度知道里看到一道题目, 看别人的解答很好。记录//有一个数组{0,1,5,60,0,3,6,0,7,8,9},以0为定界符,输出[1,5,60],[3,6],[7,8,9] #include<stdio.h> intmain(void){ inta[11]={0,1,5,60,0,3,6,0,7,8,9};...
  • for循环 生成随机数 main11() { ... } 打印九九乘法表 main() { for (int h = 1; h ; h++) { for (int m = 1; m ; m++) { printf("%d*%d=%d\t", h, m, h*m); } printf("\n"); } return 0; }

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,587
精华内容 5,434
关键字:

c语言打印表格

c语言 订阅