#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_BUFFER 1024 #define SPACE ' ' #define TAB '/t' int getline(int s[], int lim) { int c, i; for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '/n'; ++i) s[i] = c; if(c == '/n') { s[i] = c; ++i; } s[i] = '/0'; return i; } int calTabNumber(int pos, int tabSize) { return tabSize - (pos % tabSize); } int main(void) { int buffer[MAX_BUFFER]; int tabSize = 4; int i, l, j, k; while (getline(buffer, MAX_BUFFER) > 0) { for (i = 0, l = 0; buffer[i] != '/0'; i++) { if (buffer[i] == TAB) { j = calTabNumber(l, tabSize); for (k = 0; k < j; k++) { putchar(SPACE); l++; } } else { putchar(buffer[i]); l++; } } } return 0; }
The C Programming Language例子程序中用buffer的下标+1作为calTabNumber的第一个参数,但觉得不符合我的要求
所以改成输出的字符个数做第一个参数,计算tab应该替换为多少个空格
您还没有登录,请您登录后再发表评论
在Windows环境下,使用GVim编辑器进行C/C++编程并编译安装包是一个高效且灵活的方法。GVim是Vim编辑器的一个图形界面版本,它提供了丰富的代码编辑功能,尤其适合程序员进行源代码编辑。本教程将详细介绍如何在...
- `set cindent`: 开启C语言风格的自动缩进,通常用于C/C++等语言的代码格式化。 - `set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s`: 设置C语言风格缩进的选项。这些选项可以控制不同的代码结构的缩进方式...
Linux 下由 VIM 搭建 C/C++ 开发环境介绍 Linux 作为一个开源的操作系统,广泛应用于服务器、嵌入式系统、移动设备等领域,而 C/C++ 作为最基础的编程语言,广泛应用于操作系统、应用程序、嵌入式系统等领域。为了...
本文主要给大家介绍了关于vi与vim修改tab为4个空格的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法如下: 配置文件位置:/etc/virc 和 /etc/vimrc 配置文件中如果要添加注释,不...
this.picbox.TabStop = false; // // fullScreenBtn // this.fullScreenBtn.Location = new System.Drawing.Point(0, 0); this.fullScreenBtn.Name = "fullScreenBtn"; this.fullScreenBtn.Size = new ...
### Visual C++ 学习笔记:动态控件管理与调整 在进行Visual C++应用程序开发时,经常会遇到需要动态创建或调整控件的情况。本文档将详细介绍如何通过使用`EnableWindow`、`ShowWindow`、`MoveWindow`及`...
set tabstop=4 # 设置制表键为4个空格宽度 set mouse=a # 启用鼠标支持,允许在可视模式下使用鼠标 syntax on # 开启语法高亮 ``` 保存并退出Vim(按`Esc`键,然后输入`:wq`并回车)。 2. 备份原有源列表 在更改源...
set tabstop=4 " 在显示时,每个制表符视为4个空格 set smarttab " 在不同缩进级别时智能地插入和删除制表符 set softtabstop=4 " 在插入模式下,按退格键删除4个空格 ``` 为了使缩进更符合PEP 8规范,你还可以启用...
this.groupOpen.TabStop = false; this.groupOpen.Text = "打开权限密码"; // // maskedTextVOpen // this.maskedTextVOpen.Location = new System.Drawing.Point(80, 50); this.maskedTextVOpen.Mask = ...
在Microsoft Foundation Classes (MFC)库中,Tab控件是一种常用的设计...在【压缩包子文件的文件名称列表】中,"Tab控件"很可能是包含上述示例代码的文件,打开并学习这些代码可以帮助你更好地理解和运用MFC的Tab控件。
**vim配置文件vimrc详解与c/c++编程的优化** vim是Linux环境下广泛使用的文本编辑器,因其全命令行操作模式而备受程序员喜爱。通过自定义`.vimrc`配置文件,我们可以根据个人习惯和需求定制vim的功能,尤其对于C/...
这里的`/usr/local/nginx/*`应替换为你的Nginx配置文件的实际路径,这样Vim就能识别并应用相应的语法高亮。 接下来,我们关注Vim的自动缩进设置。这在编写代码时尤其有用,因为它可以帮助保持代码的整洁和一致性。...
- `set tabstop=4`:设置每个tab键被显示为4个空格的宽度。这是默认的tab宽度,适用于大多数编程语言。 - `set softtabstop=4`:在编辑模式下,按Tab键插入的是4个空格,而非真正的tab字符。这样在使用Backspace键时...
首先,`tabstop`参数决定了按下Tab键后,Vim会在屏幕上显示的空格数,默认值为8。如果你希望每个Tab键代表4个空格的缩进,可以设置`set tabstop=4`。 `softtabstop`参数则是在编辑模式下,当你按退格键删除缩进时,...
要将Vim转换为C语言IDE,我们需要在`.vimrc`中添加或调整一些配置项,以增强对C语言开发的支持。 1. **安装插件管理器**: Vim的插件生态系统非常丰富,但默认不包含插件管理器。推荐使用如`Vundle`或`NeoBundle`来...
- 设置制表符为4个空格:`set expandtab` 和 `set tabstop=4` - 取消高亮搜索结果:`set nohlsearch` - 创建Vi索引文件:`ctags -R --extra=+f+q --fields=+a+i+m+n+S+z --c++-types=+p+x *` 7. **图形界面工具*...
2004.03.11 22:02:00 改正更新时出现空值出错问题,新填函数isnull 2004.03.12 13:22:08 完成关键字高亮显示 高亮显示函数 mykeywords 2004.03.12 22:08:20 加强了高亮显示函数 mykeywords的功能,使其能识别不同...
在本教程中,"zuhekuang.rar"压缩包中的"visual c_zuhekuang_组合框"实例,旨在帮助初学者理解如何在Visual C++中使用组合框。 组合框(ComboBox)在Windows程序设计中是一个集下拉列表和文本输入于一体的控件。...
在Ubuntu 12.04环境下使用Vim进行C/C++编程时,为了获得与Windows系统类似的编程体验,包括自动缩进、自动对齐以及显示行号等功能,我们需要对Vim的配置进行调整。以下是一份详细的步骤指南,将帮助你在Vim中实现...
7. 数据存储与传递:如果每个Tab页对应不同的数据,那么可能需要学习如何有效地管理这些数据并随Tab页的切换进行传递。 通过这个课程,开发者不仅可以掌握创建和管理自定义Tab控件的技术,还能提升对Windows程序...
相关推荐
在Windows环境下,使用GVim编辑器进行C/C++编程并编译安装包是一个高效且灵活的方法。GVim是Vim编辑器的一个图形界面版本,它提供了丰富的代码编辑功能,尤其适合程序员进行源代码编辑。本教程将详细介绍如何在...
- `set cindent`: 开启C语言风格的自动缩进,通常用于C/C++等语言的代码格式化。 - `set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s`: 设置C语言风格缩进的选项。这些选项可以控制不同的代码结构的缩进方式...
Linux 下由 VIM 搭建 C/C++ 开发环境介绍 Linux 作为一个开源的操作系统,广泛应用于服务器、嵌入式系统、移动设备等领域,而 C/C++ 作为最基础的编程语言,广泛应用于操作系统、应用程序、嵌入式系统等领域。为了...
本文主要给大家介绍了关于vi与vim修改tab为4个空格的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法如下: 配置文件位置:/etc/virc 和 /etc/vimrc 配置文件中如果要添加注释,不...
this.picbox.TabStop = false; // // fullScreenBtn // this.fullScreenBtn.Location = new System.Drawing.Point(0, 0); this.fullScreenBtn.Name = "fullScreenBtn"; this.fullScreenBtn.Size = new ...
### Visual C++ 学习笔记:动态控件管理与调整 在进行Visual C++应用程序开发时,经常会遇到需要动态创建或调整控件的情况。本文档将详细介绍如何通过使用`EnableWindow`、`ShowWindow`、`MoveWindow`及`...
set tabstop=4 # 设置制表键为4个空格宽度 set mouse=a # 启用鼠标支持,允许在可视模式下使用鼠标 syntax on # 开启语法高亮 ``` 保存并退出Vim(按`Esc`键,然后输入`:wq`并回车)。 2. 备份原有源列表 在更改源...
set tabstop=4 " 在显示时,每个制表符视为4个空格 set smarttab " 在不同缩进级别时智能地插入和删除制表符 set softtabstop=4 " 在插入模式下,按退格键删除4个空格 ``` 为了使缩进更符合PEP 8规范,你还可以启用...
this.groupOpen.TabStop = false; this.groupOpen.Text = "打开权限密码"; // // maskedTextVOpen // this.maskedTextVOpen.Location = new System.Drawing.Point(80, 50); this.maskedTextVOpen.Mask = ...
在Microsoft Foundation Classes (MFC)库中,Tab控件是一种常用的设计...在【压缩包子文件的文件名称列表】中,"Tab控件"很可能是包含上述示例代码的文件,打开并学习这些代码可以帮助你更好地理解和运用MFC的Tab控件。
**vim配置文件vimrc详解与c/c++编程的优化** vim是Linux环境下广泛使用的文本编辑器,因其全命令行操作模式而备受程序员喜爱。通过自定义`.vimrc`配置文件,我们可以根据个人习惯和需求定制vim的功能,尤其对于C/...
这里的`/usr/local/nginx/*`应替换为你的Nginx配置文件的实际路径,这样Vim就能识别并应用相应的语法高亮。 接下来,我们关注Vim的自动缩进设置。这在编写代码时尤其有用,因为它可以帮助保持代码的整洁和一致性。...
- `set tabstop=4`:设置每个tab键被显示为4个空格的宽度。这是默认的tab宽度,适用于大多数编程语言。 - `set softtabstop=4`:在编辑模式下,按Tab键插入的是4个空格,而非真正的tab字符。这样在使用Backspace键时...
首先,`tabstop`参数决定了按下Tab键后,Vim会在屏幕上显示的空格数,默认值为8。如果你希望每个Tab键代表4个空格的缩进,可以设置`set tabstop=4`。 `softtabstop`参数则是在编辑模式下,当你按退格键删除缩进时,...
要将Vim转换为C语言IDE,我们需要在`.vimrc`中添加或调整一些配置项,以增强对C语言开发的支持。 1. **安装插件管理器**: Vim的插件生态系统非常丰富,但默认不包含插件管理器。推荐使用如`Vundle`或`NeoBundle`来...
- 设置制表符为4个空格:`set expandtab` 和 `set tabstop=4` - 取消高亮搜索结果:`set nohlsearch` - 创建Vi索引文件:`ctags -R --extra=+f+q --fields=+a+i+m+n+S+z --c++-types=+p+x *` 7. **图形界面工具*...
2004.03.11 22:02:00 改正更新时出现空值出错问题,新填函数isnull 2004.03.12 13:22:08 完成关键字高亮显示 高亮显示函数 mykeywords 2004.03.12 22:08:20 加强了高亮显示函数 mykeywords的功能,使其能识别不同...
在本教程中,"zuhekuang.rar"压缩包中的"visual c_zuhekuang_组合框"实例,旨在帮助初学者理解如何在Visual C++中使用组合框。 组合框(ComboBox)在Windows程序设计中是一个集下拉列表和文本输入于一体的控件。...
在Ubuntu 12.04环境下使用Vim进行C/C++编程时,为了获得与Windows系统类似的编程体验,包括自动缩进、自动对齐以及显示行号等功能,我们需要对Vim的配置进行调整。以下是一份详细的步骤指南,将帮助你在Vim中实现...
7. 数据存储与传递:如果每个Tab页对应不同的数据,那么可能需要学习如何有效地管理这些数据并随Tab页的切换进行传递。 通过这个课程,开发者不仅可以掌握创建和管理自定义Tab控件的技术,还能提升对Windows程序...