我需要排除中间也有空行的情况。
时间: 2024-04-11 18:26:10 浏览: 13
如果你需要排除中间存在的空行,可以使用一个标志变量来判断当前行是否为空行。修改后的代码如下所示:
```c
int read(FILE *fp) // 读文件,并返回行数
{
int row = 0;
int empty_line = 0; // 标志变量,初始值为0表示当前行不是空行
char mid;
while (!feof(fp))
{
mid = fgetc(fp); // 从txt文本中读取一个字符赋值给mid
if (mid == '\n')
{
if (!empty_line) // 当前行不是空行
row++; // 记录txt数据行数
empty_line = 0; // 重置标志变量为0
}
else if (!isspace(mid)) // 如果字符不是空格或制表符等空白字符
{
empty_line = 1; // 设置标志变量为1,表示当前行是空行
}
}
row++; // 最后一行没有换行符
rewind(fp); // 回文件起始位置
return row;
}
```
这样修改后,只有当当前行不是空行时才会将`row`递增,从而排除了中间存在的空行。空行的判断是通过检查当前字符是否为空格或制表符等空白字符来实现的。
相关问题
c语言文件函数文件中间有空行怎么读入
空行在C语言中不会影响文件读取函数的实现。C语言的文件读取函数(如fread、fgets等)会按照文件内容的顺序逐行读取文件内容,包括空行。如果你要忽略空行,可以使用fgets函数读取每一行内容,并且根据读取的内容是否为空行来进行判断和处理。例如:
```
FILE *fp;
char buffer[1024];
fp = fopen("file.txt", "r");
while(fgets(buffer, 1024, fp) != NULL) {
if(buffer[0] != '\n') {
// 处理非空行的内容
}
}
fclose(fp);
```
在这个示例中,我们使用fgets函数逐行读取了文件内容,并且根据第一个字符是否为换行符来判断是否为空行。如果不是空行,就可以继续处理文件内容,否则就跳过。
excel 清楚中间的空行
要清除Excel中间的空行,可以按照以下步骤操作:
1. 选择包含空行的区域:在Excel中找到包含空行的区域,可以通过点击并拖动鼠标来选择需要清除空行的范围。
2. 使用筛选功能:在Excel的菜单栏上找到“数据”选项卡,然后点击“筛选”。这将在选择的区域上添加筛选器。
3. 过滤空行:在选择的区域顶部的每一列标题上点击筛选器图标,然后取消勾选“空白”选项,只留下有数值的行。
4. 删除空行:选择剩下的非空行,右键点击并选择“删除”或者按下键盘上的Delete键进行删除。确认删除操作。
5. 取消筛选:完成删除后,再次点击“筛选”选项卡上的图标,以取消筛选器并显示整个表格数据。
这样就可以清除Excel中间的空行了。请注意,在进行删除操作之前,建议先备份数据以防误删。