今天真是试了各种方法,笨方法聪明方法都有了

方法1:一个字符一个字符的读取

方法2:借助strtok实现split 适用于char

方法3:借助istringstream实现split 适用于string

// 方法1:一个字符一个字符读取
#include <iostream>
#include <string>
#include <fstream>
#include <stdlib.h>
using namespace std;
int main()
{
    ifstream fin("data.txt");
    if(! fin.is_open())
    {
        cout<<);
    }
    char str;
    ];
    ;num[i] = ;
    bool IsNegative = false;
    while(!fin.eof()){
        fin.read(&str,);
        if(str == ' '){
            if(IsNegative) num[i] = -num[i];
            printf("%d ",num[i]);
            i += ;num[i] = ;
            IsNegative = false;
        }
        else if(str == '\0' || str == '\n'){
            if(IsNegative) num[i] = -num[i];
            printf("%d ",num[i]);
            i += ;num[i] = ;
            break;
        }
        else if(str == '-'){
            IsNegative = true;
        }
        else{
            num[i] = num[i]* + (str-');
        }
    }
    ;
}
//方法2:借助strtok实现split 适用于char
#include <iostream>
#include <string>
#include <fstream>
#include <string.h>
#include <stdio.h>
using namespace std;
int ReadNum(char *str){
    ;
    ;
    ] == '-'){
        i += ;
    }
    while(str[i]){
        num = (str[i]-;
        i += ;
    }
    ] == '-'){
        num = -num;
    }
    return num;
}

int main()
{
    ifstream fin("data.txt");
    if(! fin.is_open())
    {
        cout<<);
    }
    ];
    ];;
    fin.getline(s,);
    const char *d = " ";
    char *p;
    p = strtok(s,d);
    while(p)
    {
            num[i] = ReadNum(p);
            printf("%d ",num[i]);
            i+=;
            p=strtok(NULL,d);
    }
    ;
}
//方法3:借助istringstream实现split 适用于string
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
using namespace std ;
int ReadNum(string str){
    ;
    ;
    ] == '-'){
        i += ;
    }
    while(str[i]){
        num = (str[i]-;
        i += ;
    }
    ] == '-'){
        num = -num;
    }
    return num;
}
int main(){
    ifstream fin("data.txt");
    if(! fin.is_open())
    {
        cout<<);
    }
    string str;
    getline(fin, str);
    string sTmp;
    istringstream istr(str);
    ];;
    while(!istr.eof()){
        istr >> sTmp; //get a word
        num[i] = ReadNum(sTmp);
        printf("%d ", num[i]);
        i += ;
    }
    ;
} 

C++ 读取字符串中的数字的更多相关文章

  1. java 判断一个字符串中的数字:是否为数字、是否包含数字、截取数字

    题外话: JavaScript中判断一个字符是否为数字,用函数:isDigit(); 一.判断一个字符串是否都为数字 package com.cmc.util; import java.util.re ...

  2. 写出将字符串中的数字转换为整型的方法,如:“as31d2v”->312,并写出相应的单元测试,正则去掉非数值、小数点及正负号外的字符串

    写出将字符串中的数字转换为整型的方法,如:"as31d2v"->312,并写出相应的单元测试,输入超过int范围时提示不合法输入. public struct Convert ...

  3. SQL Server 2008 R2——创建函数 筛选出字符串中的数字 筛选出字符串中的非数字

    =================================版权声明================================= 版权声明:本文为博主原创文章 未经许可不得转载  请通过右 ...

  4. Excel中如何提取字符串中的数字

    取字符串中的数字,假如数据在A列,提取公式为 =LOOKUP(9^9,--MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&5^19)),ROW($1:$99) ...

  5. C# 使用正则表达式去掉字符串中的数字,或者去掉字符串中的非数字

            /// 去掉字符串中的数字           public static string RemoveNumber(string key)           {            ...

  6. C++ 提取字符串中的数字

    C++ 提取字符串中的数字 #include <iostream> using namespace std; int main() { ] = "1ab2cd3ef45g&quo ...

  7. java截取字符串中的数字

    java从字符串中提取数字 随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取 ...

  8. python(15)提取字符串中的数字

    python 提取一段字符串中去数字 ss = “123ab45” 方法一:filter filter(str.isdigit, ss) 别处copy的filter的用法: # one>> ...

  9. 用sql获取某字符串中的数字部分的语句

    create function dbo.F_Get_No ( @No varchar(100) ) RETURNS bigint AS BEGIN WHILE PATINDEX('%[^0-9]%', ...

随机推荐

  1. saltstack API(一) 安装并测试

    python3 安装api # 首先安装python3 .tgz cd Python- . ./configure make make install mv /usr/bin/python /usr/ ...

  2. nGrinder windows agent / linux agent

    s ngrinder部署 https://blog.csdn.net/yue530tomtom/article/details/82113558 Windows机器启动不了ngrinder-agent ...

  3. 开源实时消息推送系统 MPush

    系统介绍 mpush,是一款开源的实时消息推送系统,采用java语言开发,服务端采用模块化设计,具有协议简洁,传输安全,接口流畅,实时高效,扩展性强,可配置化,部署方便,监控完善等特点.同时也是少有的 ...

  4. HDFS 上文件块的副本数设置

    一.使用 setrep 命令来设置 # 设置 /javafx-src.zip 的文件块只存三份 hadoop fs -setrep /javafx-src.zip 二.文件块在磁盘上的路径 # 设置的 ...

  5. 设计模式---数据结构模式之组合模式(Composite)

    前提:数据结构模式 常常有一些组建在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大的破坏组件的复用.这时候,将这些数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无 ...

  6. tomcat如何访问非webapp下的资源文件

    只要在%tomcathome%\conf\server.xml文件,在标签中加入文件中加入如下代码即可: <Host name="localhost" appBase=&qu ...

  7. dubbo监控中心---dubbo-admin

    dubbo监控中心---dubbo-admin: 一:dubbo管理平台搭建: 1-1:下载dubbo-admin.war包 https://pan.baidu.com/s/16jkoSozY68M7 ...

  8. asp.net mvc cshtml (VIEWS)中怎么提供URL参数:

    其实,没有必要,只要在view中这样获取就可以: <%=Html.ViewContext.RouteData.Values["id"]%> 就算没有id的参数也不会报错 ...

  9. 细说log4j之log4j 1.x

    官网:http://logging.apache.org/log4j/1.2/manual.html 三大组件:loggers,appenders,layouts. LoggersLogger是一个层 ...

  10. memset赋值

    比较神奇的事情 可能和二进制有关系吧 #include<bits/stdc++.h> using namespace std; ]; int main(){ memset(f,,sizeo ...