如何从文本文件中分割数据,例如,我有这个文本文件
"tarek 5235263463 US"
在C ++中它就像
string name , number , location;
file >> name >> number >> location;
我怎样才能在C#中做同样的事情?
答案 0 :(得分:1)
使用string.Split(char[], StringSplitOptions);
char []参数可让您根据需要拆分多个字符。请参阅文档here
List<string> fileLines = File.ReadAllLines(@"C:\filepath.txt").ToList();
foreach(var fileLine in fileLines)
{
var splitFileLine = fileLine.Split(new[] {" "}, StringSplitOptions.None);
var name = splitFileLine[0];
var number = splitFileLine[1];
var location = splitFileLine[2];
//save, output, whatever you want
}
答案 1 :(得分:0)
假设您已经将文件内容作为字符串(它应该不是很难实现,如果它?)。然后你首先必须拆分字符串:
$codice
分割字符串现在包含您想要的信息,因此您现在需要做的就是:
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
int N;
int global = 10;
int entering[100];
int number[100];
int max(int number[100]) {
int i = 0;
int maximum = number[0];
for (i = 0; i < N; i++) {
if (maximum < number[i])
maximum = number[i];
}
return maximum;
}
void lock(int i) {
int j = 0;
entering[i] = TRUE;
number[i] = 1 + max(number);
entering[i] = FALSE;
for (j = 0; j < N; j++) {
while (entering[j]);
while (number[j] != 0 && (number[j] < number[i] || (number[i] == number[j]) && j < i)) {}
}
}
void unlock(int i) {
number[i] = 0;
}
void *fn(void *integer) {
int i = (int) integer;
lock(i);
printf("\n\n-----------Process %d---------",i);
printf("\nProcess %d is Entering Critical Section\n",i);
global++;
printf("%d is the value of global \n",global);
printf("Process %d is leaving Critical Section\n",i);
printf("----------------------------------\n\n");
unlock(i);
}
int main()
{
printf("Enter Number of Process\n");
scanf("%d",&N);
int th[N];
void *fn(void *);
pthread_t thread[N];
int i = 0;
for (i = 0; i < N; i++) {
th[i] = pthread_create(&thread[i], NULL, fn, (void *)i);
pthread_join(thread[i], NULL);
}
return EXIT_SUCCESS;
}
那应该做你想做的事。