1. 程式人生 > >c讀取一行字串,以及c++讀取一行字串

c讀取一行字串,以及c++讀取一行字串

一 c讀取一行字串

1 gets

#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  

int main()  
{  
    int size = 1024;   
    char* buff = (char*)malloc(size);  

    // read lines  
    while(NULL != gets(buff)){  
        printf("Read line with len: %d\n", strlen(buff));  
        printf
("%s", buff); } // free buff free(buff); }

利用getchar()讀取一個個字元來讀取一行

#include <stdio.h>  
#include <stdlib.h>  

int my_getline(char* line, int max_size)  
{  
    int c;  
    int len = 0;  
    while( (c = getchar()) != EOF && len < max_size ){  
        line[len++] = c;  
        if
('\n' == c) break; } line[len] = '\0'; return len; } int main() { int max_size = 1024; char* buff = (char*)malloc( sizeof(char) * max_size ); //getline int len; while(0 != (len = my_getline(buff, max_size))){ printf("Read line with len: %d\n"
, len); printf("%s", buff); } free(buff); }

二 c++讀取一行字串

cin.get()和cin.getline()

#include<iostream>

using namespace std;

int main()
{

    cout << "----------getline忽略'\\n-----------------" << endl;
    char str0[30], str1[30];
    cin.getline(str0, 30);
    cin.getline(str1, 30);
    cout << "str0:" << str0 << endl;
    cout << "str1:" << str1 << endl;

    cout << "---------利用get()消除get()遺留下來的'\\n'-------" << endl;
    char str2[30], str3[30];
    cin.get(str2, 30).get();   // 注意這裡!
    cin.get(str3, 30).get();
    cout << "str1: " << str2 << endl;
    cout << "str2: " << str3 << endl;

    cout << "--------沒消除get()遺留下來的'\\n'就被下一個get()讀取了,所以str5輸出為空-----" << endl;
    char str4[30], str5[30];
    cin.get(str4, 30);   // 注意這裡!
    cin.get(str5, 30);
    cout << "str4: " << str4 << endl;
    cout << "str5: " << str5 << endl;
    return 0;

}

這裡寫圖片描述

相關推薦

c讀取一行字串以及c++讀取一行字串

一 c讀取一行字串 1 gets #include <stdio.h> #include <stdlib.h> #include <string.h>

QT初體驗1:如何學習QT之個人淺見以及如何讀取文本文件在調試信息中輸出。

沒有 c++教程 最簡 將不 ror 聽說 講解 知識點 括號 2017年11月初,隨著工作崗位的調動,我轉到了研發崗,開始了漫漫程序員的成長之路。首先介紹下個人知識儲備,大一學習過C語言,沒有工程經驗,所學是為了期末考試+2級考試,考完在大學+碩士期間沒有用到編程。 來到

C# 獲取utc時間以及utc datetime 互相轉化

alt tint time() 方法 轉化 return 知識 time second 原文:C# 獲取utc時間,以及utc datetime 互相轉化 大部分源於http://blog.sina.com.cn/s/blog_4c6e822d0102dsd

C#環境搭建以及C#編譯器的使用

load www 包管理 download 5.0 mpi share color 環境 搭建nuget包管理器 HomePage windows環境下,可以下載安裝包:Download 使用最新版本的C#編譯器 C# 5.0之後,微軟將csc開源並獨立運行,其項目命名為—

關於中值濾波演算法以及C語言實現

關於中值濾波演算法,以及C語言實現 2017年04月06日 11:45:58 閱讀數:1464 1、什麼是中值濾波? 中值濾波是對一個滑動視窗內的諸畫素灰度值排序,用其中值代替視窗中心象素的原來灰度值,它是一種非線性的影象平滑法,它對脈衝干擾級椒鹽噪聲的抑制效果好,在抑制隨機噪聲的同

C++霧中風景12:聊聊C++中的Mutex以及拯救生產力的Boost

筆者近期在工作之中程式設計實現一個Cache結構的封裝,需要使用到C++之中的互斥量Mutex,於是花了一些時間進行了調研。(結果對C++標準庫很是絕望....)最終還是通過利用了Boost庫的shared_mutex解決了問題。借這個機會來聊聊在C++之中的多執行緒程式設計的一些“坑”。 1.C++多執

使用迴圈讀取輸入行直到使用者輸入一行

char * s_gets(char *st,int n)函式返回的是一個指向char型別陣列開頭的指標。如果使用者輸入空行,陣列第一個元素是’\0’,判定迴圈結束的條件就應該是*while(s_gets(ch,SIZE)!=’\0’) char * s_ge

Java讀取InputStream長度以及available、readAllBytes、read、mark、reset方法介紹

/** 根據InputStream對應的位元組陣列讀取InputStream長度,會將InputStream指標移動至InputStream尾,不利於後續讀取,readInputStream(inputStream).length等同於inputStream.readAllBytes()

android 呼叫C/C++的互相呼叫以及DLL的呼叫。

1.JNI (1)Java call Native C JNI的基本概念可以參考以下文獻:http://blog.csdn.net/believefym/archive/2007/06/08/1644635.aspx     這裡需要注意的是javah命令處理的是.class檔案,而不是.java檔

golang日期轉字串仿照C#中的日期格式結構體

1、日期格式集合、日期轉字串方法 package util import ( "strings" "time" ) //日期格式:模仿java中的結構體 type DateStyle string const ( MM_DD

終於理解了什麼是c/c++執行時庫以及libcmt msvcrt等內容

在各個版本的編譯器中,我們可以通過配置選項來設定程式使用的C和C++執行時庫的型別。如下圖(其他版本編譯器大同小異):MT選項:連結LIB版的C和C++執行庫。在連結時就會在將C和C++執行時庫整合到程式中成為程式中的程式碼,程式體積會變大。 MTd選項:LIB的除錯版。 M

Java中讀取XML檔案生成XML格式的字串並解析這個字串

由於最近要用的是XML格式的字串,而不用寫到檔案中,所以對原始程式碼進行了修改如下: 要讀的xml檔案 <?xml version="1.0" encoding="GB2312"?> <學生花名冊> <學生 性別 = "男">

SpringBoot 讀取yml檔案以及獲取不到value的情況

如果出現value無法獲取的情況,請看一下pom專案是不是依賴不對, 一,spring元件重寫構造方法,在構造方法中引用@value為null 由於spring例項化順序為先執行構造方法,再注入成員變數,所以序為先執行構造方法,再注入成員變數,所以ing例項化順取值為

給定一個長度不限的字串請找出該字串中出現次數最多的那個字元並打印出該字元及出現次數(C/C++版)

#include<iostream> using namespace std; /** * @brief findchar 給定一個長度不限的字串,請找出該字串中出現次數最多的那個字元,並打印出該字元及出現次數; 如果多個字元的出現次數相同,只打印首個

Java專案中讀取properties檔案以及六種獲取路徑的方法

Java讀取properties檔案的方法比較多,網上最多的文章是"Java讀取properties檔案的六種方法",但在Java應用中,最常用還是通過java.lang.Class類的getResourceAsStream(String name) 方法來實現,但我見到眾多讀取properties檔案的

Jni程式設計(二)jni.h 標頭檔案定義分析以及c/c++呼叫java類的屬性和方法

在第一篇部落格中 我們初步瞭解了jni程式設計的步驟,那接下來我認為極其重要的事情是搞清楚jni.h標頭檔案裡面的結構,包括資料型別和方法的定義等,這些是必須的,否則沒有辦法進行學習,就像寫文章一樣,要先學會寫字是一樣的道理。 首先來看一下jni.h標頭檔案的組成:ps下面

題目:輸入一個字串打印出該字串中字元的所有排列。例如輸入字串abc則輸出由字元a、b、c所能排列出來的所有字串abc、acb、bac、bca、cab和cba。

題目:輸入一個字串,打印出該字串中字元的所有排列。例如輸入字串abc,則輸出由字元a、b、c所能排列出來的所有字串abc、acb、bac、bca、cab和cba。 /** * */ pack

C#物件的三個特點:封裝繼承多型 以及c#中隱藏(new)和方法重寫(override)和過載(overload)的區別

封裝 1)封裝原則:將不需要對外提供的內容都隱藏起來,把屬性都隱藏,提供公共方法對其訪問,通常有兩種訪問方式:set 設定,get 獲取。 2)封裝結果:存在但是不可見。 3) 訪問修飾符 宣告的可訪問性                                

C++中的unordered_map以及與STL中的map的比較

unordered_map是很早就知道的概念,但卻一直沒有認真去理解,單單以為它是Boost庫裡對map的實現,今天在做Leetcode的題目的時候,發現了使用它的優越性,索性翻開書,並查一查資料,把

C#中override重寫與new隱藏的區別以及C#與Java的Override區別

在C#中:override重寫,是指對父類中的虛方法(標記為override)或抽象方法(標記為abstract)進行重寫,實現新的功能,它必須與父類方法的簽名完全一致,而且與父類方法的可訪問性也必須一致new方法隱藏,是指在子類中重新定義一個簽名與父類的方法相同的方法,這個