1. 程式人生 > >C++ 讀檔案為什麼最後一個字元會多讀一次

C++ 讀檔案為什麼最後一個字元會多讀一次

一般判斷讀檔案的結束條件 !fin.eof(),當讀到檔案結束時,fin.eof()並不會立即返回1,所以最後一個字元就多讀了一次,如何避免這種情況發生,需要加上一個條件:

int main()
{
 uchar c;
 ifstream in("2.txt");
 while (!in.eof())
 {
  in >> c;
  if (in.fail())
  {
   break;
  }
  cout << c << endl;
 }
}


相關推薦

C++ 檔案為什麼最後一個字元

一般判斷讀檔案的結束條件 !fin.eof(),當讀到檔案結束時,fin.eof()並不會立即返回1,所以最後一個字元就多讀了一次,如何避免這種情況發生,需要加上一個條件: int main() { uchar c; ifstream in("2.txt"); whi

C#刪除字串最後一個字元的幾種方法

 字串:string s = "1,2,3,4,5,"目標:刪除最後一個 ","方法一:s = s.Remove(s.LastIndexOf(","), 1); ; //移除掉最後一個","方法二:用的最多的是Substring,這個也是我一直用的s = s.Substrin

c#除掉字串最後一個字元幾種方法

有一陣列;轉換為字串後為 aaa|bbb|ccc|ddd|現要去掉最後一個|第一種方法:語句為:str1=aaa|bbb|ccc|ddd|str=str1.substring(0,lastindecof("|"));respone.write(str);outprint:=

c#使用鉤子函式出現字母重複和和少最後一個字元的問題

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System; using System.Collect

C++的ifstream中使用eof最後一個字元輸出兩,其實不是eof的鍋!

寫C++檔案輸入輸出流時遇到的小問題 當我執行以下程式碼時,最後的值會列印兩次: 1 #include <iostream> 2 #include <stdlib.h> 3 #include <fstream> 4 using namespace std;

python檔名讀取,將txt中每行的最後一個字元提取放入另一個txt中,python批量轉化tif檔案為jpg

把需要的部分註釋回來就好 # ===============讀取資料夾內檔案並輸出檔名到某txt上======================== # rootdir = "./test" # # file_object = open('test1.txt','w')

SQL語句拼接 最後一個字元出 處理方式

String [] name=new String[]{"張三","李四","123","321"}; StringBuilder buffer=new StringBuilder("sel

C語言 檔案大小,分配空間,檔案,寫入檔案,實現複製的功能

首先通過兩種方法得到檔案的大小,位元組為單位,根據這個大小使用malloc分配固定的空間buffer,二進位制流讀入檔案,把二進位制流寫入buffer中,buffer輸出寫入到新的檔案。 原始檔1.txt,輸出檔案1.txt.txt 環境為Ubuntu 16.04,gcc #incl

C#基礎】輸入一個字元,判定它是什麼型別的字元(大寫字母,小寫字母,數字或者其它字元

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _02_判斷使用者輸入字元型別 { c

java刪除字串最後一個字元的幾種方法

字串:string s = "1,2,3,4,5,"  目標:刪除最後一個 ","  方法:     1、用的最多的是Substring,這個也是我一直用的        

scala常用操作-去除字串最後一個字元

不BB直接上程式碼 /** * @ author: zjf * @ description: * @ date: 2018/9/20 20:55 */ object Test { def main(args: Array[String]): Unit = {

python字串面試題:找出一個字串中第一個字母和最後一個字元是第一重複,中間沒有重複且最長的子串

1.給出任意一個字串,列印一個最長子串字串及其長度,如果有相同長度的子字串,都要一起打印出來,該子字串滿足以下條件, 第一個字母和最後一個字元是第一次重複 這個子字串的中間字母沒有重複 這個子字串是滿足條件裡面的最長的 如: adsasadmasd 中滿足條件的是dmasd   im

C語言實現有一個字元陣列的內容為:"student a am i",請你將陣列的內容改為"i am a student"。

//有一個字元陣列的內容為:"student a am i",請你將陣列的內容改為"i am a student"。    要求:不能使用庫函式。               只能開闢有限個空間(空間個數和字串的長度無關)。   解題思路:               

C語言實現判斷一個字元竄是否為另外一個字串旋轉之後的字串

 //判斷一個字元竄是否為另外一個字串旋轉之後的字串    例如:給定s1 = AABCD和s2 = BCDAA,返回1,給定s1 = abcd和s2 = ACBD,返回0.               // AABCD左旋一個字元得到ABCDA              

獲取連結(字串)最後一個字元

方法一:運用String物件下的charAt方法 charAt() 方法可返回指定位置的字元。 程式碼如下 複製程式碼  str.charAt(str.length – 1) 請注意,JavaScript 並沒有一種有別於字串型別的字元資料型別,所以返回的字元是長度為 1

js中刪除字串最後一個字元

substring() 方法用於提取字串中介於兩個指定下標之間的字元。返回值:一個新的字串,該字串值包含 stringObject 的一個子字串,其內容是從 start 處到 stop-1 處的所有字元,其長度為 stop減 start。

去掉字串最後一個字元

http://stackoverflow.com/questions/3573284/trim-last-character-from-a-string http://stackoverflow.com/questions/1722334/extract-only-righ

VI操作--跳到最後一行和跳到最後一行的最後一個字元

vi操作 1.跳到文字的最後一行:按“G”,即“shift+g” 2.跳到最後一行的最後一個字元 : 先重複1的操作即按“G”,之後按“$”鍵,即“shift+4”。 3.跳到第一行的第一個字元:先按兩次“g”, 4.跳轉到當前行的第一個字元:在當前行按“0”。 5.vi加

js獲取字串最後一個字元程式碼

方法一:運用String物件下的charAt方法 charAt() 方法可返回指定位置的字元。 程式碼如下str.charAt(str.length – 1) 請注意,JavaScript 並沒有一種有別於字串型別的字元資料型別,所以返回的字元是長度為 1 的字串 方法二:運用String物件下的su

正則表示式 linux shell 刪除偶數奇數行 取得最後一個字元 s/\(^.*$\)\n^.*$/\1/g

alert(){ #Usage:alert <$?> <object> if [ "$1" -ne 0 ] then echo "WARNING:$2 did not complete succfully." >&2 e