找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
請尊重及感激所有版主付出和奉獻發表文章前請先閱讀相關版規伊莉需要你的贊助和支持
人妻神奇寶貝波多野結世紀帝國mg 無碼office
1185794100萬美レイメイ4106666女冒險cureakari ne

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]嘆氣的亡靈想隱退

同學,上課別打瞌睡

[繁]最狂輔助職業【話

[簡]重啟人生的千金小

[繁]青春之箱05-

[繁]香格里拉・開拓異
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 3285|回復: 39
打印上一主題下一主題

[問題]C++程式收尋文字檔內容[複製鏈接]

菜成名 該用戶已被刪除
跳轉到指定樓層
樓主
發表於 2011-12-8 11:39 AM|只看該作者|倒序瀏覽
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
各位大大好請問對C++程式比較熟的站友我現在有一個文字檔,假如內容有英文跟數字我現在已經用getline寫到另一個文字檔中,但我想找檔案的抹某一行的數字,並把它取代成另外的數字請問這該如何寫呢?煩請各位幫忙了
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊
分享分享0收藏收藏0支持支持0
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

Rank: 2Rank: 2

帖子
165
積分
519 點
潛水值
28929 米
頭香
發表於 2011-12-8 11:51 AM|只看該作者
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
如果是用string的話, 可以使用replace來替換

或是利用strchr來搜尋字串中特定的字元

找到後再進行更換
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。

使用道具檢舉

菜成名 該用戶已被刪除
3
發表於 2011-12-8 11:56 AM|只看該作者
[i=s] 本帖最後由 菜成名 於 2011-12-8 11:58 AM 編輯 [/i]

[quote]如果是用string的話, 可以使用replace來替換或是利用strchr來搜尋字串中特定的字元找到後再進行更換 ...
[size=2][color=#999999]pkturtle 發表於 2011-12-8 11:51 AM[/color] [url=http://www05.eyny.com/redirect.php?goto=findpost&pid=200837727&ptid=7097010][img]http://www05.eyny.com/images/common/back.gif[/img][/url][/size][/quote]

你好假如我的文字黨內容如下
...
瀏覽完整內容,請先 註冊登入會員
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

Rank: 2Rank: 2

帖子
165
積分
519 點
潛水值
28929 米
4
發表於 2011-12-8 12:05 PM|只看該作者
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。
可以將讀檔的那部份po出來嗎?

想知道你讀進來的資料的儲存方式
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

菜成名 該用戶已被刪除
5
發表於 2011-12-8 12:31 PM|只看該作者
[i=s] 本帖最後由 菜成名 於 2011-12-8 12:33 PM 編輯 [/i]

  我的程式碼如附件,我將E.dat的內容讀到12.dat檔中,我想搜尋到s行,並將0.2 0.3的數值取代掉,煩請你指導了,謝謝




附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊

使用道具檢舉

Rank: 2Rank: 2

帖子
165
積分
519 點
潛水值
28929 米
6
發表於 2011-12-8 01:10 PM|只看該作者
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。
大概是這樣..我沒有檔案測試

你在自己試試看吧
  1.         char a[154];
  2.         char *p, temp, newA[154];
  3.        
  4.         while (infile.getline(a ,154))
  5.         {
  6.                 p = strstr(a, "0.2 0.3");

  7.                 if (p != NULL)                //有找到0.2 0.3
  8.                 {
  9.                         //將前面的字串存到newA
  10.                         strncpy(newA, a, p - a);

  11.                         //加上要替換的字串
  12.                         strcat(newA, "123123");

  13.                         //加上後面的字串
  14.                         strcat(newA, p + strlen("0.2 0.3"));
  15.                 }

  16.                 outfile << a<<endl;
  17.         }
複製代碼
...
瀏覽完整內容,請先 註冊登入會員
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

菜成名 該用戶已被刪除
7
發表於 2011-12-8 01:52 PM|只看該作者
[quote]大概是這樣..我沒有檔案測試

你在自己試試看吧
[size=2][color=#999999]pkturtle 發表於 2011-12-8 01:10 PM[/color] [url=http://www05.eyny.com/redirect.php?goto=findpost&pid=200842459&ptid=7097010][img]http://www05.eyny.com/images/common/back.gif[/img][/url][/size][/quote]

你好,我剛試了一下,裡面的0.2 0.3不會替換成123123,請問這outfileas那邊的a要改成newA嗎?
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

Rank: 2Rank: 2

帖子
165
積分
519 點
潛水值
28929 米
8
發表於 2011-12-8 01:59 PM|只看該作者
恩 那應該是下面的方式
  1.         char a[154];
  2.         char *p, temp, newA[154];
  3.         
  4.         while (infile.getline(a ,154))
  5.         {
  6.                 p = strstr(a, "0.2 0.3");

  7.                 if (p != NULL)                //有找到0.2 0.3
  8.                 {
  9.                         //將前面的字串存到newA
  10.                         strncpy(newA, a, p - a);

  11.                         //加上要替換的字串
  12.                         strcat(newA, "123123");

  13.                         //加上後面的字串
  14.                         strcat(newA, p + strlen("0.2 0.3"));

  15.                                                 outfile << newA <<endl;
  16.                 }
  17.                                 else
  18.                                         outfile << a<<endl;
  19.         }
複製代碼
...
瀏覽完整內容,請先 註冊登入會員
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

菜成名 該用戶已被刪除
9
發表於 2011-12-8 02:07 PM|只看該作者
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
[quote]恩 那應該是下面的方式
[size=2][color=#999999]pkturtle 發表於 2011-12-8 01:59 PM[/color] [url=http://www05.eyny.com/redirect.php?goto=findpost&pid=200845706&ptid=7097010][img]http://www05.eyny.com/images/common/back.gif[/img][/url][/size][/quote]

現在編譯可以過了,可是直行exe檔時,出現錯誤了
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。

使用道具檢舉

Rank: 2Rank: 2

帖子
165
積分
519 點
潛水值
28929 米
10
發表於 2011-12-8 02:34 PM|只看該作者
回復
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
菜成名



    newA使用前先清除裡面的內容.....
  1. //加在if 裡面
  2. memset(newA, 0, sizeof(newA));
複製代碼





回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。

使用道具檢舉

菜成名 該用戶已被刪除
11
發表於 2011-12-8 02:52 PM|只看該作者
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
[quote]回復
[size=2][color=#999999]pkturtle 發表於 2011-12-8 02:34 PM[/color] [url=http://www05.eyny.com/redirect.php?goto=findpost&pid=200848170&ptid=7097010][img]http://www05.eyny.com/images/common/back.gif[/img][/url][/size][/quote]

可以了,不好意思,我在請教你一件事,如果我現在找到了S那行,我可以將S後面的0.2 0.3 2個數字放到一個陣列裡面嗎?因為我這兩個數字會數子會一直替換掉
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php

使用道具檢舉

菜成名 該用戶已被刪除
12
發表於 2011-12-8 03:06 PM|只看該作者
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
[quote]回復
[size=2][color=#999999]pkturtle 發表於 2011-12-8 02:34 PM[/color] [url=http://www05.eyny.com/redirect.php?goto=findpost&pid=200848170&ptid=7097010][img]http://www05.eyny.com/images/common/back.gif[/img][/url][/size][/quote]

現在可以了,請問你喔假如我現在有一個陣列b[2]=0.02 0.03,我想將剛剛的0.2 0.3替換成陣列的0.02 0.03,這樣要怎麼寫呢?因為我s行後面的數字要一直替換掉,煩請你指導了,謝謝...
瀏覽完整內容,請先 註冊登入會員
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

Rank: 2Rank: 2

帖子
165
積分
519 點
潛水值
28929 米
13
發表於 2011-12-8 03:22 PM|只看該作者
回復
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
菜成名



給你個作法參考

讀出來的字串S將它分成三等分A, B, C
B, 被取代的字串
A, 在B前面的字串
C, 在B後面的字串

需要更換的字串叫作B1
新的組合出來的字串叫做S1
...
瀏覽完整內容,請先 註冊登入會員
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

菜成名 該用戶已被刪除
14
發表於 2011-12-8 03:39 PM|只看該作者
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
[quote]回復  菜成名


給你個作法參考

讀出來的字串S將它分成三等分A, B, C
B, 被取代的字串
A, 在B前面 ...
[size=2][color=#999999]pkturtle 發表於 2011-12-8 03:22 PM[/color] [url=http://www05.eyny.com/redirect.php?goto=findpost&pid=200851572&ptid=7097010][img]http://www05.eyny.com/images/common/back.gif[/img][/url][/size][/quote]


不好意思,我還是不懂,我現在把txt檔案內容變多,現在就找不到S那一行了...
瀏覽完整內容,請先 註冊登入會員
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。

使用道具檢舉

Rank: 2Rank: 2

帖子
165
積分
519 點
潛水值
28929 米
15
發表於 2011-12-8 03:56 PM|只看該作者
回復
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
菜成名



    剛剛給的程式當中, 分析讀進來的資料是
  1. p = strstr(a, "0.2 0.3");
複製代碼
裡面是判斷"0.2 0.3"

看起來你要判斷的是"s " 然後取代後面的字串

可以參考以下
  1. while (infile.getline(a ,154))
  2. {
  3.         p = strstr(a, "s ");

  4.         if (p != NULL)                //發現"s "
  5.         {
  6.                 //將前面的字串存到newA
  7.                 strncpy(newA, a, p - a + strlen("s "));

  8.                 //加上要替換的字串
  9.                 strcat(newA, "0.x 0.x");

  10.                 outfile << newA <<endl;
  11.         }
  12.         else
  13.                 outfile << a<<endl;
  14. }
複製代碼
...
瀏覽完整內容,請先 註冊登入會員





使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部