C++ 读取字符串中的数字
今天真是试了各种方法,笨方法聪明方法都有了
方法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++ 读取字符串中的数字的更多相关文章
- java 判断一个字符串中的数字:是否为数字、是否包含数字、截取数字
题外话: JavaScript中判断一个字符是否为数字,用函数:isDigit(); 一.判断一个字符串是否都为数字 package com.cmc.util; import java.util.re ...
- 写出将字符串中的数字转换为整型的方法,如:“as31d2v”->312,并写出相应的单元测试,正则去掉非数值、小数点及正负号外的字符串
写出将字符串中的数字转换为整型的方法,如:"as31d2v"->312,并写出相应的单元测试,输入超过int范围时提示不合法输入. public struct Convert ...
- SQL Server 2008 R2——创建函数 筛选出字符串中的数字 筛选出字符串中的非数字
=================================版权声明================================= 版权声明:本文为博主原创文章 未经许可不得转载 请通过右 ...
- 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) ...
- C# 使用正则表达式去掉字符串中的数字,或者去掉字符串中的非数字
/// 去掉字符串中的数字 public static string RemoveNumber(string key) { ...
- C++ 提取字符串中的数字
C++ 提取字符串中的数字 #include <iostream> using namespace std; int main() { ] = "1ab2cd3ef45g&quo ...
- java截取字符串中的数字
java从字符串中提取数字 随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取 ...
- python(15)提取字符串中的数字
python 提取一段字符串中去数字 ss = “123ab45” 方法一:filter filter(str.isdigit, ss) 别处copy的filter的用法: # one>> ...
- 用sql获取某字符串中的数字部分的语句
create function dbo.F_Get_No ( @No varchar(100) ) RETURNS bigint AS BEGIN WHILE PATINDEX('%[^0-9]%', ...
随机推荐
- saltstack API(一) 安装并测试
python3 安装api # 首先安装python3 .tgz cd Python- . ./configure make make install mv /usr/bin/python /usr/ ...
- nGrinder windows agent / linux agent
s ngrinder部署 https://blog.csdn.net/yue530tomtom/article/details/82113558 Windows机器启动不了ngrinder-agent ...
- 开源实时消息推送系统 MPush
系统介绍 mpush,是一款开源的实时消息推送系统,采用java语言开发,服务端采用模块化设计,具有协议简洁,传输安全,接口流畅,实时高效,扩展性强,可配置化,部署方便,监控完善等特点.同时也是少有的 ...
- HDFS 上文件块的副本数设置
一.使用 setrep 命令来设置 # 设置 /javafx-src.zip 的文件块只存三份 hadoop fs -setrep /javafx-src.zip 二.文件块在磁盘上的路径 # 设置的 ...
- 设计模式---数据结构模式之组合模式(Composite)
前提:数据结构模式 常常有一些组建在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大的破坏组件的复用.这时候,将这些数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无 ...
- tomcat如何访问非webapp下的资源文件
只要在%tomcathome%\conf\server.xml文件,在标签中加入文件中加入如下代码即可: <Host name="localhost" appBase=&qu ...
- dubbo监控中心---dubbo-admin
dubbo监控中心---dubbo-admin: 一:dubbo管理平台搭建: 1-1:下载dubbo-admin.war包 https://pan.baidu.com/s/16jkoSozY68M7 ...
- asp.net mvc cshtml (VIEWS)中怎么提供URL参数:
其实,没有必要,只要在view中这样获取就可以: <%=Html.ViewContext.RouteData.Values["id"]%> 就算没有id的参数也不会报错 ...
- 细说log4j之log4j 1.x
官网:http://logging.apache.org/log4j/1.2/manual.html 三大组件:loggers,appenders,layouts. LoggersLogger是一个层 ...
- memset赋值
比较神奇的事情 可能和二进制有关系吧 #include<bits/stdc++.h> using namespace std; ]; int main(){ memset(f,,sizeo ...