比如一个1.txt里面内容:
机阿里山地方
啊家jll
affg./??
输出到2.txt的结果就是
6
5
8
@echo off
:1
for /f %%a in (' find /c /v "" ^<"你的文件.txt" ') do set/a c=%%a
set/a c=%c%-1
rem b是当前行数
set/a b=%b%+1
if %b% EQU %c% (goto main)
for /f "skip=%b% delims=" %%a in (你的文件.txt) do (
set txt=%%~a
goto T
)
:T
::txt就是每行是内容
::bat语句获取字数比较麻烦,可以搞个python精简版,用现成的len,共享变量给bat
goto 1
:end
rem 结束
exit
您好,你说的bat文件是dos下的批处理文件对吧。我不太清除bat文件的写法,比较熟悉linux下面的makefile的写法,我感觉这两个比较类似。
我可以告诉你实现的思路:
你提问是在C语言区,不过我也就C比较好了,C实现的话。
首先你需要计算出1.txt中每行的字数,你可以通过一个简单的while循环加getc函数来实现,当getc函数读取到换行符,你提前定义的i就停止自加一的操作就可以了。
然后将此行得到的数字i写入2.txt就可以了。也是个循环。你可以通过feof函数检测是否达到文件末尾作为循环条件。
下面给出一下while循环加getc函数实现的例子代码,希望对你有帮助:
int i= 0;
char buffer = '0'; //暂时存储字符的变量
while ((buffer = getc(stdin)) != '\n') //不是回车输入时持续此循环
{
i++;
//此处需要写入2.txt,具体实现你就自己写吧,用fwrite文件操作函数就可以了
}