3_Windows下利用批處理文件_去除C源代碼中指示行號的前導數字


  在園子里面貼代碼的時候,經常有人貼代碼就像下面這樣前面帶有行號,復制下來后,粘貼到代碼編輯器里面后,前面很多的數字

編譯前還要全部的刪除這些數字才能編譯,幾十行的代碼刪除也就算了,如果代碼行成千上萬行后就比較麻煩了。

 Exp:帶前導行號的C源代碼

1 #include <stdio.h>
2
3 int main(int argc,char **argv)
4 {
5 printf("hello world!");
6
7 return 0;
8 }

  如果能有一個簡單的方法來去除這些代碼前面的行號,將有利於提高學習效率;既然大家都是懂得編程的人,就會想到用編程的方法來

實現這個功能;比方說利用C語言編寫一個讀寫文件的小程序來實現這個功能;但是這樣又比較麻煩,那有么有更簡單的方法呢?

      答案是:有。

  利用命令行提供的功能就能實現。基於上面的需求我用命令行實現的一個簡單的去除C語言代碼中前面的行號批處理。下面給出批處理

文件的源代碼:

@echo off

title C語言代碼去除前導數字批處理
echo.
echo.
echo ***************************************************************
echo.
echo.
echo 歡迎使用——C語言代碼去除前導數字批處理——工具
echo.
echo.
echo Author: volcanol
echo Version: v0.0
echo QQ: 164498180
echo Email: lilinly225
echo Blog: http://www.cnblogs.com/volcanol/
echo.
echo.
echo ****************************************************************
echo.
echo.
echo 按任意鍵繼續.........
echo.
echo.
pause >nul

::接受用戶輸入文件名
cls
echo.
echo 請輸入完整路徑及文件名(文件在當前文件夾可僅輸入文件名):
echo.
set /p file=

::判斷文件是否存在
if exist %file% goto goon

::不存在要編輯的文件,提示后退出
echo.
echo.
cls
echo ******************************************************************
echo.
echo.
echo 您要編輯的文件不存在,請確認路徑及文件名是否正確!
echo.
echo 感謝使用——C語言代碼去除前導數字批處理——工具
echo.
echo 請按任意鍵退出................
echo.
echo.
echo ******************************************************************
pause >nul
exit

::存在文件就執行下面的語句
:goon
echo. >de_pre_num.c
for /f "tokens=2-30" %%i in ( %file% ) do echo %%i %%j %%k %%l %%m %%n %%o %%p %%q %%r %%s %%t %%u %%v %%w %%x %%y %%z>>de_pre_num.c
cls
echo ******************************************************************
echo.
echo.
echo 已經成功處理文件,並將處理后的文件保存在:de_pre_num.c
echo.
echo 感謝使用——C語言代碼去除前導數字批處理——工具
echo.
echo 請按任意鍵退出.........
echo.
echo.
echo ******************************************************************
pause >nul

Exp:下面是帶前導數字C語言代碼。

 1 /*                 
2 StrToInt: 將字符串轉換為整型數
3 */
4 #include <stdio.h>
5 unsigned long int str_to_int(const char *source);
6 int main(int argc char *argv[])
7 {
8 char str[5]="1234";
9 unsigned long int test;
10 test=str_to_int(str);
11 printf("%d\n" test);
12 return 0;
13 }
14 /*
15 函數功能:
16 將一個以0-9字符組成的字符串轉換為整型數據
17 函數原型:
18 unsigned long int str_to_int(const char *source)
19 函數參數:
20 char *source: 存儲字符串的首地址
21 返回值:
22 轉換后的Int數值
23 異常:
24 傳遞空指針或者時函數無法返回正確值
25 */
26 unsigned long int str_to_int(const char *source)
27 {
28 unsigned long int result=0;
29 while('\0'!= *source )
30 {
31 result =(*source + result - '0')*10;
32 ++source;
33 }
34 return result/10;
35 }

Exp:下面是用批處理處理后的C語言代碼:

/*                 
StrToInt: 將字符串轉換為整型數
*/
#include <stdio.h>
unsigned long int str_to_int(const char *source);
int main(int argc char *argv[])
{
char str[5]="1234";
unsigned long int test;
test=str_to_int(str);
printf("%d\n" test);
return 0;
}
/*
函數功能:
將一個以0-9字符組成的字符串轉換為整型數據
函數原型:
unsigned long int str_to_int(const char *source)
函數參數:
char *source: 存儲字符串的首地址
返回值:
轉換后的Int數值
異常:
傳遞空指針或者時函數無法返回正確值
*/
unsigned long int str_to_int(const char *source)
{
unsigned long int result=0;
while('\0'!= *source )
{
result =(*source + result - '0')*10;
++source;
}
return result/10;
}

     在學習linux的時候,知道有正則表達式這么個玩意,在VB Script或JScript里面好像也有,都可以用來處理文本文件;以前沒有深入了解命令行這個東西,現在

發現Win下的批處理還是不錯的,可以實現很多功能。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM